Statistical debugging is a powerful technique for identifying bugs that do not violate programming rules or program invariants. Previously known statistical debugging techniques are offline bug isolation (or localization) techniques. In these techniques, the program dumps data during its execution, which is used by offline statistical analysis to discover differences in passing and failing executions. The differences identify potential bug sites. Offline techniques suffer from three limitations: (i) a large number of executions are needed to provide data, (ii) each execution must be labelled as passing or failing, and (iii) they are postmortem techniques and therefore cannot raise an alert at runtime when a bug symptom occurs. In this paper, we present an online statistical bug detection tool called Argus. Argus constructs statistics at runtime using a sliding window over the program execution, is capable of detecting bugs in a single execution and can raise an alert at runtime when bu...
Long Fei, Kyungwoo Lee, Fei Li, Samuel P. Midkiff