Memory Management Replay in DejaVu

Multithreading makes it hard to use cyclic debugging techniques, due to the non-determinism related to the concurrent behaviour of such applications. A well known solution consists of recording an execution and debugging it during replay. In order to produce a faithful replay, the recorded information needs to contain enough information to cover all non-deterministic choices. Java has an extra source of non-determinism related to the garbage collector of the JVM. This paper discusses the problems that arise herefrom and describes the solutions we developed in order to implement a fully operational memory management replay module, based on the scheduling replay of DejaVu. Keywords— Record/replay, DejaVu, multithreading, debugging, Java

[1]  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.

[2]  Jong-Deok Choi,et al.  Deterministic replay of Java multithreaded applications , 1998, SPDT '98.

[3]  Mark Christiaens,et al.  A Taxonomy of Execution Replay Systems , 2003 .