Cyclic Debugging Using Execution Replay

This paper presents a tool that enables programmers to use cyclic debugging techniques for debugging non-deterministic parallel programs. The solution consists of a combination of record/replay with automatic on-the-fly data race detection. This combination enables us to limit the record phase to the more efficient recording of the synchronization operations, and checking for data races during a replayed execution. As the record phase is highly efficient, there is no need to switch it off, hereby eliminating the possibility of Heisenbugs because tracing can be left on all the time.

[1]  David A. Padua,et al.  Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming , 1990, PPoPP 1990.

[2]  Jong-Deok Choi,et al.  Race Frontier: reproducing data races in parallel-program debugging , 1991, PPOPP '91.

[3]  Robert H. B. Netzer Optimal tracing and replay for debugging shared-memory parallel programs , 1993, PADD '93.

[4]  Koen De Bosschere,et al.  Clock snooping and its application in on-the-fly data race detection , 1997, Proceedings of the 1997 International Symposium on Parallel Architectures, Algorithms and Networks (I-SPAN'97).

[5]  Luk Levrouw,et al.  A New Trace And Replay System For Shared Memory Programs Based On Lamport Clocks , 1994, Proceedings. Second Euromicro Workshop on Parallel and Distributed Processing.

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

[7]  Hsueh-I Lu,et al.  Detecting Race Conditions in Parallel Programs that Use One Semaphore , 1993, WADS.

[8]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[9]  Luk Levrouw,et al.  Efficient coding of execution-traces of parallel programs , 1995 .

[10]  Colin J. Fidge,et al.  Logical time in distributed computing systems , 1991, Computer.

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

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

[13]  Michiel Ronsse,et al.  JiTI: a robust just in time instrumentation technique , 2001, CARN.

[14]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.