Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging (2004)
| Venue: | In USENIX Annual Technical Conference, General Track |
| Citations: | 82 - 6 self |
BibTeX
@INPROCEEDINGS{Srinivasan04flashback:a,
author = {Sudarshan M. Srinivasan and Srikanth K and Christopher R. Andrews and Yuanyuan Zhou},
title = {Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging},
booktitle = {In USENIX Annual Technical Conference, General Track},
year = {2004},
pages = {29--44}
}
Years of Citing Articles
OpenURL
Abstract
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.







