Automated debugging for arbitrarily long executions

  • Authors:
  • Cristian Zamfir;Baris Kasikci;Johannes Kinder;Edouard Bugnion;George Candea

  • Affiliations:
  • School of Computer and Communication Sciences, École Polytechnique Fédérale de Lausanne, Switzerland;School of Computer and Communication Sciences, École Polytechnique Fédérale de Lausanne, Switzerland;School of Computer and Communication Sciences, École Polytechnique Fédérale de Lausanne, Switzerland;School of Computer and Communication Sciences, École Polytechnique Fédérale de Lausanne, Switzerland;School of Computer and Communication Sciences, École Polytechnique Fédérale de Lausanne, Switzerland

  • Venue:
  • HotOS'13 Proceedings of the 14th USENIX conference on Hot Topics in Operating Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

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 postmortem debugging of failures is feasible for real, inproduction 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.