Operating System Research Group

Operating System Research on Energy, Reliability and Autonomy

 Home
People
Publication
Projects
Conferences
Member Only

 

Flashback: A Light-weight Extension for Rollback and Deterministic Replay for Software Debugging.

By Sudarshan Srinivasan, Christopher Andrews, Srikanth Kandula and Yuanyuan Zhou

Published in Proceedings of the annual Usenix technical conference (USENIX'04), June, 2004.  (13% acceptance rate, 21/164)
 [
PS, PDF]

Abstract:

Software robustness has significant impact on system reliability and availability. Unfortunately, finding software bugs is a very challenging task because many bugs are hard to reproduce when the program is recompiled with heavy instrumentation and executed in a debugging run. Consequently, it is important to provide efficient support to rollback the program to a previous execution point and deterministically re-execute the buggy code region. Most previous work on rollback involves mechanisms to survive hardware or operating system failure, and as such are too heavy-weight for the fine-grained rollback needed for software debugging.

This paper presents a light-weight solution to support fine-grained rollback for the purpose of software debugging. Our solution uses virtual processes/shadow processes to efficiently rollback in-memory state of a process, and uses process-based file versioning to rollback file system updates made by the debugged process. We have implemented this solution in the Linux operating system and gdb. Our experimental results with micro-benchmarks and real applications show that our system adds little overhead and can quickly roll-back programs to a previous execution point.

The Linux and gdb patches will soon be released to public. Flashback is currently used by various research groups and classes at UIUC as beta-users.

Home | People | publication | Projects | Conferences | MemberOnly

 

Last updated: 05/26/2006.