Bug localization by algorithmic debugging and program slicing

  • Mariam Kamkar
  • Nahid Shahmehri
  • Peter Fritzson
Algorithmic Programming

DOI: 10.1007/BFb0024176

Part of the Lecture Notes in Computer Science book series (LNCS, volume 456)
Cite this paper as:
Kamkar M., Shahmehri N., Fritzson P. (1990) Bug localization by algorithmic debugging and program slicing. In: Deransart P., Maluszyński J. (eds) Programming Language Implementation and Logic Programming. PLILP 1990. Lecture Notes in Computer Science, vol 456. Springer, Berlin, Heidelberg

Abstract

This paper presents a generalized version of algorithmic debugging, a method for semi-automatic bug localization. The method is generally applicable to procedural languages, and is not dependent on any ad hoc assumptions regarding the subject program. The original form of algorithmic debugging, introduced by Shapiro [Shapiro-83], is however limited to small Prolog programs without side-effects. Another drawback of the original method is the large number of interactions with the user during bug localization.

To our knowledge, this work is the first generalization of algorithmic debugging for programs with side-effects written in imperative languages such as Pascal. Also, we have improved the search method in a way that eliminates many irrelevant questions to the programmer during bug localization. This makes it feasible to debug larger programs. The focusing of the localization process is achieved by using program slicing, a data flow analysis technique, to dynamically compute which parts of the program are relevant for the search. A prototype generalized algorithmic debugger for Pascal has been implemented in Pascal.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag 1990

Authors and Affiliations

  • Mariam Kamkar
    • 1
  • Nahid Shahmehri
    • 1
  • Peter Fritzson
    • 1
  1. 1.Department of Computer and Information ScienceLinköping UniversityLinköpingSweden

Personalised recommendations