This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Reverse debugging
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