Failure sketches: a better way to debug

Baris Kasikci, Cristiano L. Pereira, Gilles Pokam, Benjamin Schubert, Madanlal Musuvathi, George Candea · 2015

One of the main reasons debugging is hard and time con-suming is that existing debugging tools do not provide an explanation for the root causes of failures. Addition-ally, 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, de-velopers spend precious time chasing elusive bugs, re-sulting in productivity loss. We propose a new debugging technique, called fail-ure 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 pro-gram 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 sig-nificantly improve programmer productivity. 1

Read the paper · More papers on PaperTik