A Program Error Localization Expert System

Bogdan Korel · Proceedings of SPIE, the International Society for Optical Engineering/Proceedings of SPIE · 1986

Error localization in program debugging is the process of identifying program statements which cause incorrect behavior. This paper describes a prototype of the error localization expert system which guides a programmer during debugging of Pascal programs. The system is interactive: it queries the programmer for the correctness of the program behavior and uses answers to focus the programmer's attention on an erroneous part of the program (in particular, it can localize a faulty statement). The system differs from previous approaches in that it makes use of the knowledge of program structure rather than the knowledge at the level of symptom-fault rules. The knowledge of program structure is represented by the dependence network which is based on the concept of dependence relationship between program instructions. The inspiration behind using the dependence network is that any instruction in the execution trace from the beginning to a position of incorrectness could conceivably have been responsible for the faulty behavior. Using dependence network, as a guide to which instruction to examine, seems to be an effective way to focus the programmer's attention appropriately. The dependence network is used by the error-locating reasoning mechanism to guide the construction, evaluation, and modification of hypotheses of possible causes of the error. The backtracking reasoning has been implemented in the reasoning mechanism. This type of reasoning is, in some sense, just an abstraction and elaboration of what experienced programmers do intuitively. The expert system frees the programmer from trial-and-error process that is typical during locating the source of an error when using a traditional break-and-examine debugger.

Read the paper · More papers on PaperTik