[reverse RFC] test for restored machine state

Michael Snyder msnyder@vmware.com
Tue Sep 16 23:57:00 GMT 2008


Here's a test for the question we've been discussing,
about the restored machine state after reverse execution
stops.

Although it probably would have been sufficient to test
two cases (register and memory), I went for completeness
and tested five cases:
  * a register variable
  * an auto variable
  * a function static
  * a module static, and
  * a module global.

In each case, I let the program increment the variable.
Then I tested whether the pre-increment value was restored
under two conditions:
  * continue backward to a breakpoint, and
  * step backward.

I checked each value "before" and "after", and the
Teawater record/replay implementation passes 100 percent.

I would welcome any suggestions for improving or extending
the test.  I've suggested a few possible extensions in the
comments.  I did a little hoop-dancing to make it as likely
as possible that the compiler would emit a single instruction
in the register case, so we can see that the side effect of
the breakpoint instruction (incrementing the register variable)
is in fact reverted.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: machinestate.txt
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20080916/df2d5818/attachment.txt>


More information about the Gdb-patches mailing list