[DynInst_API:] oneTimeCode() and exit callbacks


Date: Mon, 25 Feb 2013 13:17:26 -0600
From: David Smith <dsmith@xxxxxxxxxx>
Subject: [DynInst_API:] oneTimeCode() and exit callbacks
I've got another question. As I mentioned in my last email, I'm working
with Josh Stone on using dyninst as a systemtap backend.

I've got a problem with process exit probes. When process events happen,
like thread creation for instance, I use the associated  callback
function provided by dyninst, (registerThreadEventCallback() in this
case). When the event happens, the code stops the
mutatee and then uses oneTimeCode() to call the probe's handler. (In
systemtap all probes run in the context of the mutatee.)

This works great for thread creation probes (for instance), but not for
exit probes. When the exit callback happens, I call stopExecution().
However, when stopExecution() returns, the process has already
terminated, so I can't call oneTimeCode().

For now we're just calling the systemtap exit probe from the mutator, so
it happens at the right time, but with the wrong context.

Can anyone think of a way around this?

Thanks for the help.

-- 
David Smith
dsmith@xxxxxxxxxx
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)
[← Prev in Thread] Current Thread [Next in Thread→]