Temporal Debugging using URDB
Abstract
A new style of temporal debugging is proposed. The new URDB debugger can employ such techniques as temporal search for finding an underlying fault that is causing a bug. This improves on the standard iterative debugging style, which iteratively re-executes a program under debugger control in the search for the underlying fault. URDB acts as a meta-debugger, with current support for four widely used debuggers: gdb, MATLAB, python, and perl. Support for a new debugger can be added in a few hours. Among its points of novelty are: (i) the first reversible debuggers for MATLAB, python, and perl; (ii) support for today's multi-core architectures; (iii) reversible debugging of multi-process and distributed computations; and (iv) temporal search on changes in program expressions. URDB gains its reversibility and temporal abilities through the fast checkpoint-restart capability of DMTCP (Distributed MultiThreaded CheckPointing). The recently enhanced DMTCP also adds ptrace support, enabling one to freeze, migrate, and replicate debugging sessions.
Cite
@article{arxiv.0910.5046,
title = {Temporal Debugging using URDB},
author = {Ana Maria Visan and Artem Polyakov and Praveen S. Solanki and Kapil Arya and Tyler Denniston and Gene Cooperman},
journal= {arXiv preprint arXiv:0910.5046},
year = {2009}
}
Comments
20 pages, 3 figures, 5 tables; software at urdb.sourceforge.net