Debugging Backwards in Time
arXiv:cs/0310016
Abstract
By recording every state change in the run of a program, it is possible to present the programmer every bit of information that might be desired. Essentially, it becomes possible to debug the program by going ``backwards in time,'' vastly simplifying the process of debugging. An implementation of this idea, the ``Omniscient Debugger,'' is used to demonstrate its viability and has been used successfully on a number of large programs. Integration with an event analysis engine for searching and control is presented. Several small-scale user studies provide encouraging results. Finally performance issues and implementation are discussed along with possible optimizations. This paper makes three contributions of interest: the concept and technique of ``going backwards in time,'' the GUI which presents a global view of the program state and has a formal notion of ``navigation through time,'' and the integration with an event analyzer.
In M. Ronsse, K. De Bosschere (eds), proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003), September 2003, Ghent. cs.SE/0309027
Cited by in corpus (9)
- NuzzleBug: Debugging Block-Based Programs in Scratch
- Augmenting Diffs With Runtime Information
- Debugging Static Analysis
- MIO: Multiverse Debugging in the Face of Input/Output -- Extended Version with Additional Appendices
- JavaTA: A Logic-based Debugger for Java
- First Infrastructure and Experimentation in Echo-debugging
- Broadening the View of Live Programmers: Integrating a Cross-Cutting Perspective on Run-Time Behavior into a Live Programming Environment
- BOLD: An Ontology-based Log Debugger for C Programs
- McFly: Time-Travel Debugging for the Web