Reverse debugging
Hui Zhu
teawater@gmail.com
Thu Jul 16 03:05:00 GMT 2009
On Tue, Jul 14, 2009 at 09:28, Nick Roberts<nickrob@snap.net.nz> wrote:
> > That's because target exec does not support reverse,
> > but target record does. Reverse is also potentially
> > supported under target remote, depending on what remote
> > target you're connected to.
> >
> > > In the "Reverse Execution" node of the GDB manual it talks about
> > > "a target environment that supports reverse execution" but doesn't clarify
> > > what those targets are. The node "Process Record and Replay" comes next
> > > in the manual but these two seem to be inimately related.
> >
> > Process record (target record) is one of a small number of
> > targets that currently support reverse debugging. The others,
> > so far, are all remote targets (eg. SID from Red Hat, and
> > Simics from Virtutech).
> >...
>
> Thanks for these answers, I find them more lucid than the manual. If I try
> to reverse a remote target using gdbserver (actually on host/local machine -
> x86_64 this time), I'm not told that the target doesn't support this command
> but reverse-next works just like next until I hit a function:
>
> (gdb) reverse-next
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x0000000000400521 in printf@plt ()
> Current language: auto; currently asm
> (gdb)
Looks like you use an old gdb-cvs version with amd64,right?
1. Please use the head version of gdb. It will tell you that amd64
doesn't support prec now.
2. You can try the patch that I post to make gdb support amd64. You
can get the link and other message from
http://sourceware.org/gdb/wiki/ReversibleDebugging
Thanks,
Hui
More information about the Gdb
mailing list