MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Isolating Cause-Effect Chains from Computer Programs

Download:
Download as a PDF
unknown authors
http://www.st.cs.uni-sb.de/papers/fse2002/p201-zeller.pdf
Add To MetaCart

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.” Categories and Subject Descriptors

Citations

445 A survey of program slicing techniques – Tip - 1995
418 Algorithmic Program Debugging – Shapiro - 1983
325 Dynamically discovering likely program invariants to support program evolution – Ernst, Cockrell, et al. - 2001
219 Programmers Use Slices When Debugging – Weiser - 1982
214 Dynamic program slicing – Agrawal, Horgan - 1990
149 Tracking down software bugs using automatic anomaly detection – Hangal, Lam - 2002
83 Algorithm 457. Finding all cliques of an undirected graph – Bron, Kerbosch - 1973
83 Automatic program bug location by program slicing – Lyle, Weiser - 1987
68 Simplifying and isolating failure-inducing input – Zeller, Hildebrandt
66 Visualization of test information to assist fault localization – Jones, Harrold, et al. - 2001
65 Dynamic slicing of computer programs – Korel, Laski
57 A new model of program dependences for reverse engineering – Jackson, Rollins - 1994
52 Which pointer analysis should i use – Hind, Pioli - 2000
47 Subgraph isomorphism, matching relational structures and maximal cliques – Barrow, Burstall - 1976
24 An Efficient Relevant Slicing Method for Debugging – Gyimothy, Beszedes, et al. - 1999
21 Change impact analysis for object-oriented programs – Ryder, Tip - 2001
21 Visualizing memory graphs – Zimmermann, Zeller - 2001
10 Automatic isolation of compiler errors – Whalley - 1994
2 debugging web site. http://www.st.cs.uni-sb.de/dd – Delta
1 Automated Debugging – Zeller - 2003