LWN.net Logo

Undo Software announces UndoDB

Undo Software has announced UndoDB, a bidirectional debugger for compiled programs. "A bidirectional debugger allows programmers to run a program backwards in time as well as forwards. The program can be stepped back line-by-line, or rewound to any point in its history. Furthermore, programmers can play the program forwards and backwards in a totally repeatable fashion, allowing them to "home in" on the cause of a bug. Bidirectional debuggers are much more powerful than their traditional counterparts, which only allow programmers to step their programs forwards in time. This is particularly true for bugs whose root cause occurs long before the ill effects manifest themselves, and for bugs that occur only intermittently. " A 30 day test version of the software is available for download.
(Log in to post comments)

Other "go backwards in time" debuggers

Posted May 26, 2006 2:17 UTC (Fri) by pjm (subscriber, #2080) [Link]

My memory is fuzzy, but I think a lisp debugger was among the first to offer this feature.

Of current free software, the only debugger I can think of with this feature is for the Mercury programming language. The implementation used there is to allow going back to the beginning of any current procedure, and to remember enough I/O input (reads etc.) to replay things without redoing any I/O. I'd guess that this tends to be a bit cheaper in Mercury than in C, since the declarative style of mercury tends to lead to greater use of immutable/sharable data structures.

Are there any other examples in free software?

Other "go backwards in time" debuggers

Posted May 27, 2006 0:36 UTC (Sat) by sir99 (guest, #3286) [Link]

I think Hat, The Haskell Tracer, has a similar ability. It's not quite a debugger, as it reads a trace file only after the program has executed. But you can trace forward and backward through callers, callees, and sibling functions.

Other "go backwards in time" debuggers

Posted May 29, 2006 6:15 UTC (Mon) by jasonspiro (guest, #38047) [Link]

The OCaml debugger supports this. Now all you have to do is learn OCaml. :-)

Bil Lewis's ODB debugger can do backwards debugging for Java code. The ODB is GPL'd, as the homepage explains. I am not sure if the debugger works on free Java.

There is a 50-minute video presentation by Lewis called "Debugging Backwards in Time". If you have Flash you can view a streaming version. The downloadable file "for Windows/Mac" is in .AVI Google Video format, which, I am told, plays back fine in VLC for Linux. The download is huge. Flash Video can be played back in VLC for Windows at least; I am not sure about about VLC or other media players for Linux.

Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds