Re: Timer
Pedro Alves <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 05/07/2013 07:42 AM, Marc Brünink wrote: > > On May 7, 2013, at 12:43 PM, Doug Evans wrote: > >> On Mon, May 6, 2013 at 2:52 AM, Marc Brünink <[email protected]> wrote: >>> I want to execute a piece of code at regular intervals. Actually I'm sampling $pc. >>> (let's not go into detail why I use gdb) >>> >>> My current solution just starts another process that sends a SIGTRAP to the debugged application. Using a simple script I can print the $pc. >>> >>> However, I just realised that this approach does not work too well. If gdb is stopped due to a breakpoint it will interpret the received SIGTRAP as another hit of the very same breakpoint. >>> >>> Reproduce: >>> 1. Attach to any program >>> 2. Create any breakpoint >>> 3. Wait until breakpoint is hit >>> 4. Send SIGTRAP to debugged application >>> 5. continue >>> >>> Actually, now that I think about it, I should have anticipated this behaviour. >>> Is there a better way to execute a piece of code at regular intervals? You could also use another signal instead of SIGTRAP. >> bash$ man setitimer > > I suppose you are suggesting to modify either GDB or the application. This is exactly what I don't want. Any other way to accomplish this (using gdb)? You could use LD_PRELOAD to inject a library that uses setitimer into your program. I guess you could do it with gdb python scripting too. -- Pedro Alves