|
ABSTRACT
Consider the execution of a failing program as a sequence of program states. Each state induces the following state, up to the failure. Which variables and values of a program state are relevant for the failure? We show how the Delta Debugging algorithm isolates the relevant variables and values by systematically narrowing the state difference between a passing run and a failing run--by assessing the outcome of altered executions to determine wether a change in the program state makes a difference in the test outcome. Applying Delta Debugging to multiple states of the program automatically reveals the cause-effect chain of the failure--that is, the variables and values that caused the failure.In a case study, our prototype implementation successfully isolated the cause-effect chain for a failure of the GNU C compiler: "Initially, the C program to be compiled contained an addition of 1.0; this caused an addition operator in the intermediate RTL representation; this caused a cycle in the RTL tree--and this caused the compiler to crash."
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
AskIgor web site. http://www.askigor.org/.
|
| |
2
|
Delta debugging web site. http://www.st.cs.uni-sb.de/dd/.
|
 |
3
|
|
| |
4
|
H. G. Barrow and R. M. Burstall. Subgraph isomorphism, matching relational structures and maximal cliques. Information Processing Letters, 4(4):83-84, 1976.
|
 |
5
|
|
| |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
| |
10
|
Proc. International Conference on Software Engineering (ICSE), Orlando, Florida, May 2002.
|
 |
11
|
|
 |
12
|
|
| |
13
|
|
| |
14
|
J. R. Lyle and M. Weiser. Automatic program bug location by program slicing. In 2nd International Conference on Computers and Applications, pages 877-882, Peking, 1987. IEEE Computer Society Press, Los Alamitos, California.
|
 |
15
|
|
| |
16
|
|
| |
17
|
F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121-189, Sept. 1995.
|
 |
18
|
|
 |
19
|
|
| |
20
|
A. Zeller. Automated Debugging. Morgan Kaufmann Publishers, Aug. 2003. To appear (ISBN 1-55860-866-4).
|
| |
21
|
|
| |
22
|
|
CITED BY 5
|
|
|
|
|
Valentin Dallmeier , Christian Lindig , Andreas Zeller, Lightweight bug localization with AMPLE, Proceedings of the sixth international symposium on Automated analysis-driven debugging, p.99-104, September 19-21, 2005, Monterey, California, USA
|
|
|
|
|
|
|
|
|
|
|