Replay Debugging of Embedded Real-Time Systems: A State of the Art Report

Testing and debugging are major parts of a software development project, counted in time, money as well as importance. As it is not likely that programmers and designers will make a sudden turn to start producing totally error-free designs or implementations, the testand debug strategy of a software project will have a large influence over the overall quality of the end product. Over the years, massive resources have been spent in order to improve the quality of software. Recent reports suggest that multi-billion dollar amounts are spent each year on software maintenance in the U.S. alone. This in a time where nearly all software, desktop or embedded, grows increasingly more complex. Unfortunately, it has come to a point where many of the available tools for testing and debugging are insufficient for today’s full-scale commercial software. This state of the art report surveys the available commercial and academic tools and methods for complex real-time software debugging.

[1]  Kang G. Shin,et al.  HARTS: a distributed real-time architecture , 1991, Computer.

[2]  Jong-Deok Choi,et al.  A perturbation-free replay platform for cross-optimized multithreaded applications , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[3]  Matthew Telles,et al.  The Science of Debugging , 2001 .

[4]  Daniel Sundmark,et al.  Debugging Using Time Machines Replay Your Embedded Systems History , 2001 .

[5]  Barton P. Miller,et al.  What are race conditions?: Some issues and formalizations , 1992, LOPL.

[6]  Ieee Standard Test Access Port and Boundary-scan Architecture Ieee-sa Standards Board , 2001 .

[7]  Jason Gait,et al.  A probe effect in concurrent programs , 1986, Softw. Pract. Exp..

[8]  Thomas A. Cargill,et al.  Cheap hardware support for software debugging and profiling , 1987, ASPLOS.

[9]  Richard N. Taylor,et al.  Anomaly Detection in Concurrent Software by Static Data Flow Analysis , 1980, IEEE Transactions on Software Engineering.

[10]  Thomas J. LeBlanc,et al.  A software instruction counter , 1989, ASPLOS III.

[11]  Gregory Tassey,et al.  Prepared for what , 2007 .

[12]  R. A. Volz,et al.  Architectural support for debugging and monitoring real-time software , 1989, [1989] Proceedings. EUROMICRO Workshop on Real Time.

[13]  Koen De Bosschere,et al.  RecPlay: a fully integrated practical record/replay system , 1999, TOCS.

[14]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[15]  Henrik Thane,et al.  Monitoring, Testing and Debugging of Distributed Real-Time Systems , 2000 .

[16]  Jeffrey J. P. Tsai,et al.  A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging , 1990, IEEE Trans. Software Eng..

[17]  stallman-richard-m-cygnus-solutions Debugging with GDB: The GNU Source-Level Debugger for GDB , 2000 .

[18]  Luk Levrouw,et al.  Interrupt replay: a debugging method for parallel programs with interrupts , 1994, Microprocess. Microsystems.

[19]  Jakob Engblom,et al.  Pipeline timing analysis using a trace-driven simulator , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[20]  Hans A. Hansson,et al.  Testing distributed real-time systems , 2001, Microprocess. Microsystems.

[21]  Jacques Chassin de Kergommeaux,et al.  Execution replay of parallel procedural programs , 2000, J. Syst. Archit..

[22]  Richard H. Carver,et al.  Debugging Concurrent Ada Programs by Deterministic Execution , 1991, IEEE Trans. Software Eng..

[23]  Hans A. Hansson,et al.  Using deterministic replay for debugging of distributed real-time systems , 2000, Proceedings 12th Euromicro Conference on Real-Time Systems. Euromicro RTS 2000.

[24]  Stephen J. Fink,et al.  The Jalapeño virtual machine , 2000, IBM Syst. J..

[25]  Thomas J. LeBlanc,et al.  Debugging Parallel Programs with Instant Replay , 1987, IEEE Transactions on Computers.

[26]  Jian Xu,et al.  Necessary and Sufficient Conditions for Consistent Global Snapshots , 1995, IEEE Trans. Parallel Distributed Syst..

[27]  Andrew J. Kornecki,et al.  Learning real-time programming concepts through VxWorks lab experiments , 2000, Thirteenth Conference on Software Engineering Education and Training.

[28]  Robert H. B. Netzer,et al.  Optimal tracing and incremental reexecution for debugging long-running programs , 1994, PLDI '94.

[29]  Chinya V. Ravishankar,et al.  Monitoring and debugging distributed realtime programs , 1992, Softw. Pract. Exp..