Abstract
Typical debugging tools are insufficiently powerful to find the most difficult types of program misbehaviors. We have implemented a prototype of a new debugging system, IGOR, which provides a great deal more useful information and offers new abilities that are quite promising. The system runs fast enough to be quite useful while providing many features that are usually available only in an interpreted environment. We describe here some improved facilities (reverse execution, selective searching of execution history, substitution of data and executable parts of the programs) that are needed for serious debugging and are not found in traditional single-thread debugging tools. With a little help from the operating system, we provide these capabilities at reasonable cost without modifying the executable code and running fairly close to full speed. The prototype runs under the DUNE distributed operating system.
The current system only supports debugging of single-thread programs. The paper describes planned extensions to make use of extra processors to speed the system and for applying the technique to multi-thread and time dependent executions.
- 1 J. Conway, "The COPE User Interface", Proc of IEEE Compsac '82 (Computer Society 6th International Computer Software and Applications Conference, Chicago, 1982)Google Scholar
- 2 B. Randell, "System Structure for Software Fault Tolerance", IEEE Transactions on Software Engineering vol. SE-1, no. 2, pp. 220-232 (June 1975)Google ScholarDigital Library
- 3 M. Pucci and J. Alberi, "The Architecture of the DUNE Multiple Processor System: An Experimeat in Generalized Interprocessor Communication", Bellcore Technical ReportGoogle Scholar
- 4 T.A. Cargill, "Pi - A Case Study in Object-Oriented Programming", Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications, Portland, Oregon, pp. 350-360 (September 1986) Google ScholarDigital Library
- 5 M. Linton, "A Debugger for the Berkeley Pascal System", Master's project, UCB (June, 1981)Google Scholar
- 6 Sun Microsystems, Inc., "Debugging Tools for the Sun Workstation", Part No. 800-1325-03 (1986)Google Scholar
- 7 John R. Ellis, Kai Li, and Andrew W. Appel, "Real-time Concurrent Collection on Stock Multiprocessors", DEC Systems Research Center Technical Report #25 (February, 1988)Google Scholar
Index Terms
- IGOR: a system for program debugging via reversible execution
Recommendations
IGOR: a system for program debugging via reversible execution
PADD '88: Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debuggingTypical debugging tools are insufficiently powerful to find the most difficult types of program misbehaviors. We have implemented a prototype of a new debugging system, IGOR, which provides a great deal more useful information and offers new abilities ...
Reversible Debugging Using Program Instrumentation
Reversible execution has not been fully exploited in symbolic debuggers. Debuggers that can undo instructions usually incur a significant performance penalty during a debugging session. In this paper, we describe an efficient reversible debugging ...
Replay debugging: leveraging record and replay for program debugging
ISCA '14Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive for debugging hard-to-repeat software bugs. However, simply providing support for repeatedly stumbling on the same bug does not help diagnose it. For ...
Comments