One approach would be to augment the compiler to instrument the binary with the techniques outlined in:
XRay: A Function Call Tracing System https://ai.google/research/pubs/pub45287 Damian On Thursday, November 15, 2018 at 9:09:19 AM UTC-8, ju...@sqreen.io wrote: > > Hi, > > I am working on dynamic instrumentation of Go programs at run time, > possibly without static source-code instrumentation. As I would like a > solution as close to Go and standard as possible, I was first thinking of > using `go generate` to generate a file adding things `reflect` doesn't > provide such as the list of packages, functions, global variables... That > way, I should be able to use `reflect` to modify any dynamic calls by > modifying the method tables of their underlying type representations. > > But regarding statically linked calls, the less intrusive technique I > found are uprobes, which is linux-specific. And at the opposite, there are > user-space binary code instrumentation libraries such as dyninst that > modify the code at run time... > > So I am wondering if anyone here has any thoughts on this subject, that > doesn't seem to be solved for Go programs. > > Thanks! > > Julio > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.