In the conventional debugging process using symbolic debuggers, programmers construct several hypotheses about the cause of a failure, verify these hypotheses by examining the program states at the locations thought to be related to the failure, and locate a fault by repeating this trial-and-error process.
This paper presents an algorithmic debugging method which, for a program written in a procedural language, can automatically detect all types of faults, including missing instructions, through interaction with the programmer. It also describes the system configuration and user interfaces of an intelligent debugger called FIND (Fault-locating INtelligent Debugger) that makes use of this algorithmic debugging method, and presents a debugging example using FIND.