GDB version 7.0 (due September 2009) will be the first public release of gdb to support reverse debugging (the ability to make the program being debugged step and continue in reverse). See the wiki page here.
Presently, only certain target debugging environments will support reverse debugging. Those targets currently include:
All of those targets, plus any additional ones in the future, will support a common user interface for reverse debugging in gdb, including the new commands:
Breakpoints and watchpoints will work in reverse -- allowing you for instance to proceed directly to the previous point at which a variable was modified.
Now that the core GDB contains support for reverse debugging, it should be possible to add revese execution support to existing GNU simulators such as the ones built into GDB, as well as non-GNU targets such as valgrind, SID, and qemu.
For greater performance and fidelity in userspace and/or kernel reverse debugging, some work on GNU/Linux as well as other open source kernels might be done.
The built-in GDB target 'Process Record / Replay' currently only supports native reverse debugging on three platforms (i386-linux, amd64-linux, and moxie-elf). Volunteers are needed to extend this functionality to other GNU/Linux platforms, and even to other operating systems.
The FSF and GDB maintainers are eagerly seeking new volunteers and contributions in this area. If anyone reading this is interested in contributing to this leading edge area of research and development, we would welcome your help!
Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.
This page is maintained by the GDB developers.
Copyright Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
Last modified 2021-09-09.