USENIX Conference Policies
Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging
Software robustness has significant impact on system availability. Unfortunately, finding software bugs is a very challenging task because many bugs are hard to reproduce. While debugging a program, it would be very useful to rollback a crashed program to a previous execution point and deterministically re-execute the ``buggy'' code region. However, most previous work on rollback and replay support was designed to survive hardware or operating system failures, and is therefore too heavy-weight for the fine-grained rollback and replay needed for software debugging.
This paper presents Flashback, a lightweight OS extension that provides fine-grained rollback and replay to help debug software. Flashback uses shadow processes to efficiently roll back in-memory state of a process, and logs a process' interactions with the system to support deterministic replay. Both shadow processes and logging of system calls are implemented in a lightweight fashion specifically designed for the purpose of software debugging.
We have implemented a prototype of Flashback in the Linux operating system. Our experimental results with micro-benchmarks and real applications show that Flashback adds little overhead and can quickly roll back a debugged program to a previous execution point and deterministically replay from that point.
author = {Sudarshan M. Srinivasan and Srikanth Kandula and Christopher R. Andrews and Yuanyuan Zhou},
title = {Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging},
booktitle = {2004 USENIX Annual Technical Conference (USENIX ATC 04)},
year = {2004},
address = {Boston, MA},
url = {https://www.usenix.org/conference/2004-usenix-annual-technical-conference/flashback-lightweight-extension-rollback-and},
publisher = {USENIX Association},
month = jun
}