The Center for Education and Research in Information Assurance and Security (CERIAS)

The Center for Education and Research in
Information Assurance and Security (CERIAS)

Towards Automatic Debugging of Computer Programs

Author

Hiralal Agrawal

Entry type

phdthesis

Abstract

Programmers spend considerable time debugging code. Symbolic debuggers provide some help but the task still 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 couldd perform automatically, such as finding which statements in the program affect the value of an output variable under a given testcase, what was the value of a given variable when the control last reached a given program location, and what does the program do differently under one testcase that it does not do under another. If the debugging tools provided explicit support for such tasks, the whole debuggin process would be automated to a large extent. In this dissertation, we propose a new debugging paradigm that easily lends itself to automation. Two tasks in this paradigm translate into techniques called dynamic program slicing and execution backtracking. we discuss what these techniques are and how they can be automated. We present ways to obtain accurate dynamic slices of programs that may involve unconstrained pointers and composite variables. Dynamic slicing algorithms spanning a range of time-space-accuracy trade-offs are presented. We also propose ways in which multiple dynamic slices may be combined to provide further fault localization information. A new space-efficient approach to execution backtracking called "structured backtracking" is also proposed. Our experiment with the above techniques has also resulted in development of a prototype tool, SPYDER, that explicitely supports them.

Date

1991 – September

Address

West Lafayette, IN 47907

Institution

Software Engineering Research Center

Key alpha

Agrawal

Note

PH.D. Thesis

Number

SERC-TR-103-P

Publication Date

1970-01-01

Contents

1. Introduction 2. Debugging: State-of-the-Art-And-Practice 3. Simple Dynamic Slicing 4. Complete Dynamic Slicing 5. Local V/S Global Slicing 6. Further Fault Localization 7. Execution Backtracking 8. SPYDER: A Prototype Implementation 9. Conclusions and Future Directions

Location

A hard-copy of this is in REC 216

BibTex-formatted data

To refer to this entry, you may select and copy the text below and paste it into your BibTex document. Note that the text may not contain all macros that BibTex supports.