URDB: Universal Reversible Debugger

About

URDB is a universal reversible debugger that adds reversibility to almost any debugger through a python-based wrapper. URDB is still experimental. URDB supports multi-threaded and multi-process applications, as well as distributed computations. It currently has four personality modules, which support: gdb; MATLAB; python (pdb); and perl (perl -d). URDB gains its reversibility through the use of DMTCP (Distributed MultiThreaded CheckPointing), a fast checkpoint-restart package.

URDB also supports reverse expression watchpoints, a form of temporal search within a process lifetime. For example, the current value of a user specified expression indicates a bug. The user asks URDB/gdb to go back in time to a statement where the expression is about to take on its current value. This uses binary search: if n statements have been executed, URDB finds the point in time using only log2 n evaluations of the expression.

For further information, see the URDB Sourceforge project page.

Getting URDB

Release 0.99-r200 (Nov. 29, 2009) is now available. The latest version of URDB can always be obtained through the sourceforge.net downloads page.

To obtain the most recent (possibly unstable) source from subversion, run the following command:

Publications

Authors

URDB is currently maintained by Kapil Arya, Gene Cooperman, Tyler Denniston, Artem Polyakov, Praveen Solanki, and Ana Maria Visan. The list of active developers continues to evolve.
SourceForge.net Logo