23 August 2006
A step back in time
Cambridge base start up UndoDB has developed a bidirectional debugger that allows engineers working in compiled Linux platforms to run a programme backwards in time as well as forwards.
This contrasts with traditional debuggers that only allow programmers to step their programs forwards in time.
UndoDB was created out of founders, Greg Law and Julian Smith’s frustration with existing debugging tools. Their 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, allowing them to ‘home in’ on the cause of a bug. Whilst the approach has been used for Java programs, it hasn’t been available in compiled languages like C and C++, says UndoDB. And yet, such languages are deemed more bug prone than their high level counterparts.
“UndoDB makes even the nastiest bugs trivial to uncover,” says Julian Smith, co-founder of Undo Software. “This is hugely significant, because the unfortunate reality is that most programmers spend most of their time hunting a few nasty bugs. A tool that could reduce the debugging burden by even a few percent would save the software industry a staggering amount of time and money; and UndoDB can do much, much better than that.”
UndoDB employs the GNU GDB debugger at the front end but has matched the step forwards commands with step backwards ones, and added a few new ones, such as bgoto and bgoton, which jump to an arbitrary point in the program’s history.
Linux is the first os on which UndoBD’s offering will run. Whilst it isn’t open source, developers who don’t get paid for their work can use UndoDB for free. For those who do, it costs $495 per seat.