Flashback: A Lightweight Extension for Rollback and Deterministic Replay for software debugging. Srinivasan, S. M., Kandula, S., Andrews, C. R., & Zhou, Y. In Proc. of the USENIX Annual Tech. Conf., 2004.
abstract   bibtex   
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 heavyweight 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.
@inproceedings{srinivasan_flashback:_2004,
	title = {Flashback: {A} {Lightweight} {Extension} for {Rollback} and {Deterministic} {Replay} for software debugging},
	abstract = {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 heavyweight 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.},
	urldate = {2013-07-08TZ},
	booktitle = {Proc. of the {USENIX} {Annual} {Tech}. {Conf}.},
	author = {Srinivasan, Sudarshan M. and Kandula, Srikanth and Andrews, Christopher R. and Zhou, Yuanyuan},
	year = {2004},
	keywords = {replay}
}

Downloads: 0