Greg Law of Undo Software bent my ear the other day about his company’s new release of UndoDB, a piece of software that adds reversible debugging to GDB.
That is, when running your program under UndoDB, you can set a breakpoint at the point of failure and rewind and replay the program’s state repeatedly. For trivial bugs this is perhaps nice, but for difficult bugs, whether arduous to reproduce or impossible to find, being able to move back and forth between a known good state and a known bad state can be invaluable to fixing the bug.
Like the also impressive Coverity static analyzer, UndoDB is not open source, but it is available freely for non-commercial use. Hopefully we will see improvements to the underlying tools as well as improvements in existing software from better development tools.