COMPUTATIONAL RESEARCH in BOSTON and BEYOND (CRIBB)

Date Oct.. 5, 2012
Speaker Gene Cooperman (Northeastern University)
Topic A History of DMTCP: Checkpoint-Restart, Reversible Debugging, Virtual Machines, and Cyber-Security
Abstract:

DMTCP (Distributed MultiThreaded Checkpointing) is an eight-year old open source software project encompassing the work of about ten developers, and available for several popular Linux distros. DMTCP has interesting parallels with virtual machines. DMTCP's process-level checkpoints correspond to the snapshots of a virtual machine.

In a later enhancement, DMTCP was extended to support checkpointing of GDB sessions, which provided the basis for a reversible debugger. This paralleled the previous work on reversible debugging via virtual machines (King et al., Lewis et al.). The DMTCP-based reversible debugger (FReD: Fast Reversible Debugger) stands on three legs: checkpoint-restart (DMTCP), deterministic multi-threaded logging, and a debugger (GDB or other). The deterministic logging supports multi-threaded, multi-core replay. This is the basis for a module that implements a binary search in time for the moment when a bug first appeared. Additional novel debugging strategies are planned on top of this platform.

Quite recently, DMTCP was further enhanced to checkpoint the user-mode Qemu virtual machine. This enables whole-machine debugging (e.g. of Windows), and some interesting potential for cyber-security. Some possibilities to be investigated include: rapid fuzz testing, and low-latency cyber-hopping. Fuzz testing through checkpointing is particularly interesting for blackbox testing, in which one compares checkpointed memory images to quickly identify unusual memory patterns that may indicate potential input vulnerabilities.

Archives

Acknowledgements

We thank the generous support of MIT IS&T, CSAIL, and the Department of Mathematics for their support of this series.

MIT Math CSAIL EAPS Lincoln Lab Harvard Astronomy

Accessibility