Dorm room start up company Undo Software's new debugging tool for Linux has reached its 3.5 iteration with a call to developers to try out its faster debugging offering. UndoDB v3.5 is described as being capable of recording everything that any Linux program does so that developers can virtually "wind the tape back and forth" in order to try and look for the root cause of a bug.
The 3.5 version release features an overhaul to the GUI to provide integration with development tools such as gdb 7, Eclipse, and Emacs; the suggestion is that this allows developers to incorporate UndoDB more easily into their existing workflow environments.
As well as the customary unspecified improvements to performance and scalability, UndoDB v3.5 now boasts the ability to debug applications and libraries that rely heavily on ioctl system calls such as CUDA and OpenGL applications.
Its makers have also included an autotracer feature to attach the debugger to applications in complex environments where applications are launched by several layers of nested scripts and other programs. Features such as reverse watchpoints allow the developer to go immediately to where data has been corrupted — and then to see exactly how that happened.
UndoDB's process, which essentially allows a developer to "step" or more fully "run" an application's entire program state backwards, is commonly known as "reversible debugging" — and is also sometimes known as "replay" or "historical" debugging.
According to a statement from Undo Software, reversible debugging has been a "holy grail" of software development tools research for decades. "Despite many implementations, including support built-in to the open-source gdb 7.0, UndoDB is the first and only tool with the required performance to make reversible debugging of practical use on demanding, real-world applications."
Brian Kernighan and Rob Pike (inventors of the C programming language and the UNIX operating system) write in their book, The Practice of Programming: "Debugging involves backwards reasoning, like solving murder mysteries. Something impossible occurred, and the only solid information is that it really did occur. So we must think backwards from the result to discover the reasons."