Flashback: a lightweight extension for rollback and deterministic replay for software debugging

作者: Srikanth Kandula , Yuanyuan Zhou , Sudarshan M. Srinivasan , Christopher R. Andrews

DOI:

关键词: RollbackOperating systemComputer scienceState (computer science)SoftwareDebuggingSoftware bugProcess (computing)Task (computing)Overhead (engineering)Embedded system

摘要: Software robustness has significant impact on system availability. Unfortunately, finding software bugs is a very challenging task because many are hard to reproduce. While debugging program, it would be useful rollback crashed program previous execution point and deterministically re-execute the "buggy" code region. However, most work replay support was designed survive hardware or operating failures, therefore too heavyweight for fine-grained needed debugging. This paper presents Flashback, lightweight OS extension that provides help debug software. Flashback uses shadow processes efficiently roll back in-memory state of process, logs process' interactions with deterministic replay. Both logging calls implemented in fashion specifically purpose debugging. We have prototype Linux system. Our experimental results micro-benchmarks real applications show adds little overhead can quickly debugged from point.

参考文章(70)
John M. Mellor-Crummey, Michael L. Scott, Synchronization without contention Proceedings of the fourth international conference on Architectural support for programming languages and operating systems - ASPLOS-IV. ,vol. 26, pp. 269- 278 ,(1991) , 10.1145/106972.106999
D. Schonberg, On-the-fly detection of access anomalies Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation - PLDI '89. ,vol. 24, pp. 285- 297 ,(1989) , 10.1145/73141.74844
K. Salem, H. Garcia-Molina, Checkpointing memory-resident databases [1989] Proceedings. Fifth International Conference on Data Engineering. pp. 452- 462 ,(1989) , 10.1109/ICDE.1989.47249
George C. Necula, Scott McPeak, Westley Weimer, CCured ACM SIGPLAN Notices. ,vol. 47, pp. 74- 85 ,(2012) , 10.1145/2442776.2442786
Monica S. Lam, Jeffrey Oplinger, Enhancing software reliability with speculative threads ,(2004)
George W. Dunlap, Samuel T. King, Sukru Cinar, Murtaza A. Basrai, Peter M. Chen, ReVirt ACM SIGOPS Operating Systems Review. ,vol. 36, pp. 211- 224 ,(2002) , 10.1145/844128.844148
D. Evans, D. Larochelle, Improving security using extensible lightweight static analysis IEEE Software. ,vol. 19, pp. 42- 51 ,(2002) , 10.1109/52.976940
Yichen Xie, Dawson Engler, Using redundancies to find errors Proceedings of the tenth ACM SIGSOFT symposium on Foundations of software engineering - SIGSOFT '02/FSE 10. ,vol. 27, pp. 51- 60 ,(2002) , 10.1145/587051.587060
Sarita V. Adve, Mark D. Hill, Barton P. Miller, Robert H. B. Netzer, Detecting data races on weak memory systems Proceedings of the 18th annual international symposium on Computer architecture - ISCA '91. ,vol. 19, pp. 234- 243 ,(1991) , 10.1145/115952.115976
K.D. Cooper, M.W. Hall, R.T. Hood, K. Kennedy, K.S. McKinley, J.M. Mellor-Crummey, L. Torczon, S.K. Warren, The ParaScope parallel programming environment Proceedings of the IEEE. ,vol. 81, pp. 244- 263 ,(1993) , 10.1109/5.214549