Reverse debugging

Nick Roberts
2009-07-14T00:40:03Z

On i386, with current GDB, if I do:

(gdb) reverse-next

I get:

Target child does not support this command.

However if I do:

(gdb) target record

first, and proceed, then "reverse-next" does indeed work as I would expect.

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.

Is it possible to reverse debug without doing "target record" first? If not
then I think "Reverse Execution" should be a sub-node of "Process Record and
Replay". In any case it would be helpful to mention "target record" in the
"Reverse Execution" node if most platforms don't support reverse execution
outside record and replay.

Is there a GDB command that shows if process recording is started/stopped?
"target record" doesn't appear to influence the output of 'info target".

--
Nick http://www.inet.net.nz/~nickrob