Even if you could get uprobes to work, I think you will still have problems with inlining, and if you are going to compile with inlining disabled, etc. you might as well use Pike’s “coverage” method.
> On Nov 15, 2018, at 3:23 PM, robert engels <reng...@ix.netcom.com> wrote: > > Can’t you just ptrace the process, and use the ptrace related tools ? > > >> On Nov 15, 2018, at 2:56 PM, Tristan Colgate <tcolg...@gmail.com >> <mailto:tcolg...@gmail.com>> wrote: >> >> Maybe you mean something like support for linux uprobes? >> There is some discussion here: >> https://github.com/golang/go/issues/22008 >> <https://github.com/golang/go/issues/22008> >> Google for "golang uprobes" picks up a couple of other links: >> http://www.brendangregg.com/blog/2017-01-31/golang-bcc-bpf-function-tracing.html >> >> <http://www.brendangregg.com/blog/2017-01-31/golang-bcc-bpf-function-tracing.html> >> https://kinvolk.io/blog/2017/09/an-update-on-gobpf---elf-loading-uprobes-more-program-types/ >> >> <https://kinvolk.io/blog/2017/09/an-update-on-gobpf---elf-loading-uprobes-more-program-types/> >> >> >> >> On Thu, 15 Nov 2018 at 19:22 robert engels <reng...@ix.netcom.com >> <mailto:reng...@ix.netcom.com>> wrote: >> Pike’s “coverage" uses source code rewriting and recompiling, so it is not >> dynamic instrumentation - at least how I would define it. Dynamic >> instrumentation to me means to instrument at runtime on an existing >> binary/distribution. >> >> >>> On Nov 15, 2018, at 12:55 PM, Michael Jones <michael.jo...@gmail.com >>> <mailto:michael.jo...@gmail.com>> wrote: >>> >>> You could study Rob Pike’s coverage/profiling tool to see how he adds and >>> exploits basic block counting. Good work as always. >>> >>> On Thu, Nov 15, 2018 at 9:34 AM Robert Engels <reng...@ix.netcom.com >>> <mailto:reng...@ix.netcom.com>> wrote: >>> AFAIK dtrace support is compiled in. If not enabled there are some tricks >>> to make is essentially zero cost, but it is still there from the start. >>> Could be wrong but that’s my understanding. >>> >>> Sent from my iPhone >>> >>> On Nov 15, 2018, at 11:27 AM, Steven Hartland <ste...@multiplay.co.uk >>> <mailto:ste...@multiplay.co.uk>> wrote: >>> >>>> dtrace support? >>>> >>>> On 15/11/2018 16:51, ju...@sqreen.io <mailto: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 >>>>> <mailto:golang-nuts+unsubscr...@googlegroups.com>. >>>>> For more options, visit https://groups.google.com/d/optout >>>>> <https://groups.google.com/d/optout>. >>>> >>>> >>>> -- >>>> 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 >>>> <mailto:golang-nuts+unsubscr...@googlegroups.com>. >>>> For more options, visit https://groups.google.com/d/optout >>>> <https://groups.google.com/d/optout>. >>> >>> >>> -- >>> 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 >>> <mailto:golang-nuts+unsubscr...@googlegroups.com>. >>> For more options, visit https://groups.google.com/d/optout >>> <https://groups.google.com/d/optout>. >>> -- >>> Michael T. Jones >>> michael.jo...@gmail.com <mailto:michael.jo...@gmail.com> >>> >>> -- >>> 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 >>> <mailto:golang-nuts+unsubscr...@googlegroups.com>. >>> For more options, visit https://groups.google.com/d/optout >>> <https://groups.google.com/d/optout>. >> >> >> -- >> 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 >> <mailto:golang-nuts+unsubscr...@googlegroups.com>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. >> >> -- >> 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 >> <mailto:golang-nuts+unsubscr...@googlegroups.com>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > > > -- > 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 > <mailto:golang-nuts+unsubscr...@googlegroups.com>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- 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.