Download PDFOpen PDF in browser

A Semantic Framework for Program Debugging

1 pagesPublished: June 19, 2013


This work aims to build a semantic framework for automated debugging. A debugging process consists of tracing, locating, and fixing processes consecutively. The first two processes are accomplished by a tracing procedure and a locating procedure, respectively. The tracing procedure reproduces the execution of a failed test case with well-designed data structures and saves necessary information for locating bugs. The locating procedure will use the information obtained from the tracing procedure to locate ill-designed statements and to generate a fix-equation, the solution of which is a function that will be used to fix the bugs. A structural operational semantics is given to define the functions of the tracing and locating procedure. Both procedures are proved to terminate and produces one fix-equation. The main task of fixing process is to solve the fix-equation. It turns out that for a given failed test case, there exist three different types of solutions: 1. the bug is solvable, there exists a solution of the fix-equation, and the program can be repaired. 2. There exists a non-linear error in the program, the fix-equation generated at each round of the locating procedure is solvable, but a new bug will arise when the old bug is being fixed. 3. There exists a logical design error and the fix-equation is not solvable.

In: Laura Kovács and Temur Kutsia (editors). SCSS 2013. 5th International Symposium on Symbolic Computation in Software Science, vol 15, pages 2--2

BibTeX entry
  author    = {Wei Li},
  title     = {A Semantic Framework for Program Debugging},
  booktitle = {SCSS 2013. 5th International Symposium on Symbolic Computation in Software Science},
  editor    = {Laura Kovacs and Temur Kutsia},
  series    = {EPiC Series in Computing},
  volume    = {15},
  pages     = {2},
  year      = {2013},
  publisher = {EasyChair},
  bibsource = {EasyChair,},
  issn      = {2398-7340},
  url       = {},
  doi       = {10.29007/q2h6}}
Download PDFOpen PDF in browser