Deterministic Java Replay Debugger for Jalapeno JVM Seminars/Workshops
|Place:||Rm.1211, Industrial Management Bldg. KAIST|
Java applications, in particular server applications, are often multithreaded. Their execution can be non-deterministic, making them difficult to understand and debug. I will present a platform for analyzing interleaved program execution, comprising the Jalapeno JVM (Java Virtual Machine), the replay capabilities of DejaVu (Deterministic Java Replay Utility), and the perturbation-free reflection afforded by remote reflection. A debugger demonstrates the power and novel characteristics of the platform.
DejaVu supports understanding and debugging multithreaded Java applications through deterministic replay of non-deterministic execution. DejaVu replays the execution of the entire Jalapeno JVM, including its thread and garbage collector subsystems. The debugger must not alter the execution behavior of the JVM during replay, which is especially challenging on this platform because all components---from the Jalapeno JVM to DejaVu and the debugger---are written in Java. The key is remote reflection, which exposes program state by invoking the JVM's internal reflection methods without perturbing the JVM or the application.
[ List ]