Green Hills
Bi-directional Linux debugger Print E-mail

Undo Software unveiled UndoDB, a bidirectional debugger for compiled programs, which allows a program to be run backwards in time as well as forwards. The program can be stepped back line-by-line, or rewound to any point in its history. Programmers can also play the program forwards and backwards in a totally repeatable fashion, "homing in" on the cause of a bug.

Although bidirectional debugging has proved highly effective for Java programs, until now it has not been available to programmers using compiled languages such as C and C++. This is somewhat ironic, since lower-level languages like C and C++ can be much more bug-prone than their higher-level counterparts. However implementing a bidirectional debugger for arbitrary binaries presents a much more difficult problem than implementing one for interpreted or 'byte-code' languages, where the interpreter can be extended to record all state changes as the program executes.

UndoDB does it require any specialized hardware, kernel patches, or kernel modules, and uses gdb as its front-end, allowing Linux developers to feel right at home, and be productive the moment they get started. gdb has been complemented with a few new commands which work just like gdb's existing commands, only they step the program backwards in time, rather than forwards. For example, whereas gdb's step command steps the program forwards one source line, UndoDB's bstep command steps the program back one source line. UndoDB also compliments gdb's next, until, finish, stepi and nexti commands with their backwards counterparts: bnext, buntil, bfinish, bstepi and bnexti, respectively. UndoDB also adds some new commands which have no parallel in gdb, such as the bgoto and bgoton commands, which jump to an arbitrary point in the program's history.

http://undo-software.com/
< Prev   Next >