This research was conducted by Ben Liblit, Alex Aiken, Alice X. Zheng, and Michael I. Jordan. The paper has been published in the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI 2003).
We propose a low-overhead sampling infrastructure for gathering information from the executions experienced by a program’s user community. Several example applications illustrate ways to use sampled instrumentation to isolate bugs. Assertion-dense code can be transformed to share the cost of assertions among many users. Lacking assertions, broad guesses can be made about predicates that predict program errors and a process of elimination used to whittle these down to the true bug. Finally, even for non-deterministic bugs such as memory corruption, statistical modeling based on logistic regression allows us to identify program behaviors that are strongly correlated with failure and are therefore likely places to look for the error.
The full paper is available as a single PDF document or a single PostScript document. A suggested BibTeX citation record is also available.
This work was presented at PLDI 2003 in San Diego, California. Slides from that talk are available as a single PowerPoint document.