You are here
Failure Sketches: A Better Way to Debug
Baris Kasikci, École Polytechnique Fédérale de Lausanne (EPFL); Cristiano Pereira and Gilles Pokam, Intel Corporation; Benjamin Schubert, École Polytechnique Fédérale de Lausanne (EPFL); Madanlal Musuvathi, Microsoft Research; George Candea, École Polytechnique Fédérale de Lausanne (EPFL)
One of the main reasons debugging is hard and time consuming is that existing debugging tools do not provide an explanation for the root causes of failures. Additionally, existing techniques either rely on expensive runtime recording or assume existence of a given program input that reliably reproduces the failure, which makes them hard to apply in production scenarios. Consequently, developers spend precious time chasing elusive bugs, resulting in productivity loss.
We propose a new debugging technique, called failure sketching, that provides the developer with a high-level explanation for the root cause of a failure. A failure sketch achieves this goal because: 1) it only contains program statements that cause a failure; 2) it shows which program properties differ between failing and successful executions. We argue that failure sketches can be built by combining in-house static analysis and crowdsourced dynamic analysis. For building a failure sketch, we do not assume that developers can reproduce the failure. We show preliminary evidence that failure sketches can significantly improve programmer productivity.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.