Debugging with dynamic slicing and backtracking

Programmers spend considerable time debugging code. Symbolic debuggers provide some help but the task remains complex and difficult. Other than breakpoints and tracing, these tools provide little high‐level help. Programmers must perform many tasks manually that the tools could perform automatically, such as finding which statements in the program affect the value of an output variable for a given test case, and what was the value of a given variable when the control last reached a given program location. If debugging tools provided explicit support for these tasks, the debugging process could be automated to a significant extent.

[1]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[2]  Steven S. Muchnick,et al.  Dbxtool: A window‐based symbolic debugger for sun workstations , 1986, Softw. Pract. Exp..

[3]  Jong-Deok Choi,et al.  A mechanism for efficient debugging of parallel programs , 1988, PADD '88.

[4]  H. Agrawal,et al.  Bibliography on debugging and backtracking , 1989, SOEN.

[5]  G. A. Venkatesh,et al.  The semantic approach to program slicing , 1991, PLDI '91.

[6]  P. Henderson Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments Held at Pittsburgh, Pennsylvania on 23-25 April 1984, , 1984 .

[7]  Wuu Yang,et al.  The Semantics of Program Slicing , 1988 .

[8]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[9]  Stuart I. Feldman,et al.  IGOR: a system for program debugging via reversible execution , 1988, PADD '88.

[10]  Jingde Cheng,et al.  A general framework for debugging , 1991, IEEE Software.

[11]  Richard A. DeMillo,et al.  Compiler-integrated program mutation , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[12]  Charles E. McDowell,et al.  Debugging concurrent programs , 1989, ACM Comput. Surv..

[13]  Tim Teitelbaum The Cornell Program Synthesizer: a syntax-directed programming environment , 1979, SIGP.

[14]  Jong-Deok Choi,et al.  A Mechanism for Efficient Debugging of Parallel Programs , 1988, PLDI.

[15]  Thomas A. Cargill Pi: a case study in object-oriented programming , 1986, OOPSLA 1986.

[16]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[17]  Thomas A. Cargill Pi: a case study in object-oriented programming , 1986, OOPLSA '86.

[18]  Marvin Zelkowitz,et al.  Reversible Execution as a Diagnostic Tool , 1971 .

[19]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[20]  Linda M. Ott,et al.  The relationship between slices and module cohesion , 1989, ICSE '89.

[21]  F. J. Lukey Understanding and debugging programs , 1980 .

[22]  Dave Thomas,et al.  Orwell—a configuration management system for team programming , 1988, OOPSLA 1988.

[23]  Paul R. Wilson,et al.  Demonic memory for process histories , 1989, PLDI '89.

[24]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[25]  R. M. Balzer EXDAMS-Extendible Debugging and Monitoring Systems , 1899 .

[26]  John A. Gould,et al.  Some Psychological Evidence on How People Debug Computer Programs , 1975, Int. J. Man Mach. Stud..

[27]  Fred B. Schneider,et al.  User Recovery and Reversal in Interactive Systems , 1984, TOPL.

[28]  Matthias Felleisen,et al.  The semantics of program dependence , 1989, PLDI '89.

[29]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[30]  Richard H. Crawford,et al.  Sequential debugging at a high level of abstraction , 1991, IEEE Software.

[31]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984 .

[32]  Janusz W. Laski,et al.  Dynamic slicing of computer programs , 1990, J. Syst. Softw..

[33]  Languages Object-Oriented Programming Systems,et al.  OOPSLA '86 : Object-Oriented Programming Systems, Languages and Applications : conference proceedings, September 29-October 2, 1986, Portland, Oregon , 1986 .

[34]  Hiralal Agrawal,et al.  Towards automatic debugging of computer programs , 1992 .

[35]  David W. Binkley,et al.  Interprocedural Slicing Using Dependence Graphs , 1988, PLDI.

[36]  Jr. Edward William Krauser Compiler-integrated software testing , 1992 .

[37]  Bernard Carré,et al.  Information-flow and data-flow analysis of while-programs , 1985, TOPL.

[38]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

[39]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[40]  Eugene H. Spafford,et al.  Dynamic slicing in the presence of unconstrained pointers , 1991, TAV4.