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> 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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to