Does gccgo support the -finstrument-functions option and/or is there a non-gccgo equivalent?

Hello!

I’m the author of Corelight cwrap on github which is an experimental tool to auto instrument C/C++ programs on Intel via the gcc -finstrument-functions option. Even large C++ programs with over 100,000 functions. I’m wondering how to achieve something similar with Golang programs?

I noticed that gccgo exists as an alternative Golang compiler, and might even support the gcc -finstrument-functions option, and somebody was hinting at trying to do this in this post [1].

Does anybody know if gccgo does support the -finstrument-functions option?

It also seems like gccgo is not available on macOS [2]? So based on the response to this post then I might have to switch to Linux to experiment further :slight_smile:

Lastly, regardless of gccgo, is there another technology and/or mechanism in the Golang ecosystem which might achieve a similar result without using the gccgo -finstrument-functions command line option?

Thanks in advance!

[1] https://stackoverflow.com/questions/52125955/how-to-build-hyperledger-fabric-with-gccgo
[2] https://github.com/golang/go/issues/463

1 Like

Follow-on question:

If gccgo supports the -finstrument-functions command line option, does it play nicely with goroutines, or how can it be made to play nicely with goroutines?