gdb reverse execution: how to actually run tests for it?

Jakob Engblom
2009-08-17T07:42:57Z

I am trying to finally implement the reverse ability for MI commands, but
creating and testing the tests is looking challenging. The fundamental issue is
that it seems that I cannot get the regular reverse tests to run, to know how to
properly code the reverse tests for reverse MI.

When I run

$ make check RUNTESTFLAGS="gdb.reverse/*.exp"

There is a flurry of activity ending in this:

---
=== gdb tests ===

Schedule of variations:
unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for
target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using ../../../src/gdb/testsuite/config/unix.exp as tool-and-target-specific
interface file.
Running ../../../src/gdb/testsuite/gdb.reverse/solib-reverse.exp ...
Running ../../../src/gdb/testsuite/gdb.reverse/step-reverse.exp ...
Running ../../../src/gdb/testsuite/gdb.reverse/until-reverse.exp ...
Running ../../../src/gdb/testsuite/gdb.reverse/break-reverse.exp ...
Running ../../../src/gdb/testsuite/gdb.reverse/finish-reverse.exp ...
Running ../../../src/gdb/testsuite/gdb.reverse/machinestate.exp ...
Running ../../../src/gdb/testsuite/gdb.reverse/consecutive-reverse.exp ...
Running ../../../src/gdb/testsuite/gdb.reverse/watch-reverse.exp ...

=== gdb Summary ===

/home/jakob/gdb7/gdb-host-revpatched/gdb/testsuite/../../gdb/gdb version
6.8.50.20090814-cvs -nw -nx

make[3]: Leaving directory `/home/jakob/gdb7/gdb-host-revpatched/gdb/testsuite'
make[2]: Leaving directory `/home/jakob/gdb7/gdb-host-revpatched/gdb'
make[1]: Nothing to be done for `check-target'.
make[1]: Leaving directory `/home/jakob/gdb7/gdb-host-revpatched'
---

Which seems to indicate that no tests were actually run. This is a 6.8.50 branch
that I checked out of cvs late last week.

What is required to actually run the reverse tests? Do I need to build my gdb in
any special way?

I suspect that this line the test scripts is the cause of the premature exit
from the tests:

---
if ![target_info exists gdb,can_reverse] {
return
}
---

So how do I make gdb realize that it can indeed reverse itself?

Best regards,

/jakob

_______________________________________________________

Jakob Engblom, PhD, Technical Marketing Manager

Virtutech                   Direct: +46 8 690 07 47
Drottningholmsvägen 22      Mobile: +46 709 242 646
11243 Stockholm             Web:    www.virtutech.com
Sweden
________________________________________________________