Effective program debugging based on execution slices and inter-block data dependency

  • Authors:
  • W. Eric Wong;Yu Qi

  • Affiliations:
  • Department of Computer Science, University of Texas at Dallas, Richardson, TX;Department of Computer Science, University of Texas at Dallas, Richardson, TX

  • Venue:
  • Journal of Systems and Software - Special issue: Selected papers from the 11th Asia Pacific software engineering conference (APSEC 2004)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Localizing a fault in program debugging is a complex and time-consuming process. In this paper we present a novel approach using execution slices and inter-block data dependency to effectively identify the locations of program faults. An execution slice with respect to a given test case is the set of code executed by this test, and two blocks are data dependent if one block contains a definition that is used by another block or vice versa. Not only can our approach reduce the search domain for program debugging, but also prioritize suspicious locations in the reduced domain based on their likelihood of containing faults. More specifically, we use multiple execution slices to prioritize the likelihood of a piece of code containing a specific fault. In addition, the likelihood also depends on whether this piece of code is data dependent on other suspicious code. A debugging tool, DESiD, was developed to support our method. A case study that shows the effectiveness of our method in locating faults on an application developed for the European Space Agency is also reported.