Model-Based Debugging with High-Level Observations

Recent years have seen considerable developments in modeling techniques for automatic fault location in programs. However, much of this research considered the models from a standalone perspective. Instead, this paper focuses on the highly unusual properties of the testing and measurement process, where capabilities differ strongly from the classical hardware diagnosis paradigm. In particular, in an interactive debugging process user interaction may result in highly complex input to improve the process. This work extends the standard entropy-based measurement selection algorithm proposed in (de Kleer and Williams, 1987) to deal with high-level observations about the intended behavior of Java programs, specific to a set of test cases. We show how to incorporate the approach into previously developed model-based debugging frameworks and to how reasoning about high-level properties of programs can improve diagnostic results.

[1]  Michael Wolfe,et al.  Beyond induction variables: detecting and classifying sequences using a demand-driven SSA form , 1995, TOPL.

[2]  Daniele Theseider Dupré,et al.  Model-Based Diagnosis Meets Error Diagnosis in Logic Programs (Extended Abstract) , 1993, AADEBUG.

[3]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[4]  Markus Stumptner,et al.  Towards an Integrated Debugging Environment , 2002, ECAI.

[5]  Brian C. Williams,et al.  Diagnosing Multiple Faults , 1987, Artif. Intell..

[6]  Alex Groce,et al.  What Went Wrong: Explaining Counterexamples , 2003, SPIN.

[7]  William G. Griswold,et al.  Quickly detecting relevant program invariants , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[8]  Franz Wotawa,et al.  A Value-Based Diagnosis Model for Java Programs , 2000 .

[9]  Markus Stumptner,et al.  Can AI help to improve debugging substantially? Debugging Experiences with Value-Based Models , 2002, ECAI.

[10]  Markus Stumptner,et al.  Model-Based Diagnosis of Hardware Designs , 1999, Artif. Intell..

[11]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[12]  Patrick Cousot,et al.  Abstract interpretation based program testing , 2000 .

[13]  Markus Stumptner,et al.  Model-Based Debugging using Multiple Abstract Models , 2003, ArXiv.

[14]  Daniele Theseider Dupré,et al.  Model-Based Diagnosis Meets Error Diagnosis in Logic Programs , 1993, IJCAI.

[15]  W. Mayer,et al.  Approximate Modeling for Debugging of Program Loops , 2004 .

[16]  Daniel Jackson Aspect: detecting bugs with abstract dependences , 1995, TSEM.

[17]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[18]  Markus Stumptner,et al.  Model-Based Debugging or How to Diagnose Programs Automatically , 2002, IEA/AIE.