Re: [DynInst_API:] BPatch_object


Date: Wed, 16 May 2012 15:49:00 -0500
From: Andrew Bernat <bernat@xxxxxxxxxxx>
Subject: Re: [DynInst_API:] BPatch_object
On May 15, 2012, at 8:54 PM, Josh Stone wrote:

Well, maybe it is odd after all.  Thanks to inlining, those libpython
probes end up as part of PyEval_EvalFrameEx(), a beast of a function
with several indirect jumps.  Disassembly attached^W available on request.

Indeed, as it was with longjmp, BPatch_image::findFunction does locate
PyEval_EvalFrameEx, but findPoint(BPatch_entry) fails.

Yeah, probably uninstrumentable due to unparsed indirect jumps. 

That's a shame.  It seems that these SDT probes have a knack for showing
up in complicated code. :/

What, you want things to be easy???

Since BPatch_point is actually more general than instrumentation-only, perhaps we should add an "isInstrumentable" method that you can query. Alternatively, the snippet insert could return an error, though that gets hard when you're using the "vector of points" interface. 

Drew




[← Prev in Thread] Current Thread [Next in Thread→]