On Sun, Dec 22, 2002 at 09:51:59PM -0500, John wrote: > After the interupt (from the child issuing a PT_TRACE_ME > ptrace() call, you need to call i386_clr_watch(). > > At this point, you can single step the process using > ptrace(PT_STEP), or by calling i386_set_watch() with > a new address (type DBREG_DR7_EXEC), and then calling > ptrace(PT_CONTINUE). Note: this all assumes you are > getting and putting the debug registers correctly. > > Hope this helps. It's been a while since I've looked > at this stuff... somewhere I've got a sample program > that traces dynamic image loads. If I can find it I'll > hang it off website. > > -john
Mmh, that's the method I try to avoid :), according to me it's 'ugly' :) since that need a big if() hack to handle the break issuing from a PT_STEP without mixing it with an user wanted breakpoint. I'd rather trying to access the 'trap frame' if it's possible, otherwise I'll do the single-step-ugly-hack method :) -- Aurelien
msg38821/pgp00000.pgp
Description: PGP signature