Automated Debugging for Arbitrarily Long Executions

Cristian Zamfir, Baris Kasikci, Johannes Kinder, Edouard Bugnion, George Candea

Research output: Chapter in Book/Report/Conference proceedingConference contribution

113 Downloads (Pure)

Abstract

One of the most energy-draining and frustrating parts of software development is playing detective with elusive bugs. In this paper we argue that automated post-mortem debugging of failures is feasible for real, in-production systems with no runtime recording. We propose reverse execution synthesis (RES), a technique that takes a coredump obtained after a failure and automatically computes the suffix of an execution that leads to that coredump. RES provides a way to then play back this suffix in a debugger deterministically, over and over again. We argue that the RES approach could be used to (1) automatically classify bug reports based on their root cause, (2) automatically identify coredumps for which hardware errors (e.g., bad memory), not software bugs are to blame, and (3) ultimately help developers reproduce the root cause of the failure in order to debug it.
Original languageEnglish
Title of host publicationProc. 14th Workshop on Hot Topics in Operating Systems (HotOS 2013)
PublisherUSENIX
Publication statusPublished - May 2013

Cite this