GNU Debugger learns to walk backwards
One of the innovations in the free GNU Debugger, GDB 7, is "Reverse Debugging". On platforms that support this function, the debugger can also look through the code in reverse from its current position – even incrementally. At present, this only works on platforms such as i386-linux and amd64-linux.
On supported architectures, a program can be recorded with the new GDB and played back (“Process Record / Replay"). You can also toggle back and forth between forward and reverse debugging.
Another innovation is a new interface for JIT (just-in-time) compilation. This allows compilers to create symbol files for processes in memory and notify GDB. Users will not notice this addition when using the debugger, but compiler developers will have to enhance their software to support the feature; only the LLVM project's JIT compiler is compatible at the moment. A new scripting interface allows Python to be used to control the GDB, though this has to be enabled when compiling the debugger.