This research was conducted by Ben Liblit, Mayur Naik, Alice X. Zheng, Alex Aiken, and Michael I. Jordan. The paper has been published in the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation (PLDI 2005).
We present a statistical debugging algorithm that is able to isolate bugs in programs containing multiple undiagnosed bugs. Earlier statistical algorithms that focus solely on identifying predictors that correlate with program failure perform poorly when there are multiple bugs. Our new technique separates the effects of different bugs and identifies predictors that are associated with individual bugs. These predictors reveal both the circumstances under which bugs occur as well as the frequencies of failure modes, making it easier to prioritize debugging efforts. Our algorithm is validated using several case studies. These case studies include examples in which the algorithm found previously unknown, significant crashing bugs in widely used systems.
The full paper is available as a single PDF document or a single PostScript document. A suggested BibTeX citation record is also available.
Additional results are available for case studies described in the paper. You will need to use an XSLT-capable web browser such as Firefox or Internet Explorer 6. Click on any “●” link to begin exploring.
Data Set | ||
---|---|---|
Application | Complete | Sampled |
Moss | ● | ● |
ccrypt | ● | ● |
bc | ● | ● |
exif | ● | ● |
Rhythmbox | ● | ● |
This work was presented at PLDI 2005 in Chicago, Illinois. Slides from that talk are available as a single PowerPoint document.