A dynamic program slice is an executable part of a program whose behavior is identical, for the same program input, to that of the original program with respect to a variable(s) o...
This paper presents a new approach to enforcing array bounds and pointer checking in the C language. Checking is rigorous in the sense that the result of pointer arithmetic must r...
Currently, few tools are available for assisting developers with debugging intelligent systems. Because these systems rely heavily on context dependent knowledge and sometimes sto...
This paper introduces the bisection debugging model. The key idea is to use a debugger to identify the semantic differences between two versions of the same program. The debugger ...
I present a general framework for observing and controlling a distributed computation and its applications to distributed debugging. Algorithms for observation are useful in distr...
Previously the debugging of optimised code has not been possible without recompiling the executable code and preventing the use of code optimisation techniques. Although current r...
We introduce an assertion language for run-time checking of linked list data structure shapes. The assertion language is expressive enough to define characteristic predicates for ...