In a previous paper, Liu argued for the importance of establishing a precise theoretical foundation for program debugging from first principles. In this paper, we present a first step towards a theoretical exploration of program debugging algorithms. The starting point of our work is the recent debugging approach based on predicate switching. The idea is to switch the outcome of an instance of a predicate to bring the program execution to a successful completion and then identify the fault by examining the switched predicate. However, no theoretical analysis of the approach is available. In this paper, we generalize the above idea, and propose the bounded debugging via multiple predicate switching (BMPS) algorithm, which locates faults thro...
This paper describes the preliminary results of a project investigating approaches to dynamic debugg...
We present a generic scheme for the declarative debugging of programs that are written in rewriting-...
Debugging is a tedious and time-consuming process for software developers. Therefore, providing effe...
Typically debugging begins when during a program execution a point is reached at which an obviously ...
Existing approaches to debugging distributed systems in-volve a cycle of passive observation followe...
Debugging distributed programs is considerably more difficult than debugging sequential programs. We...
Abstract—To reduce the complexity of debugging multithreaded programs, researchers have developed ma...
To reduce the complexity of debugging multithreaded pro-grams, researchers have developed compile- a...
Predicate-based statistical fault-localization techniques locate fault-relevant predicates in a prog...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Algorithmic Debugging is a theory of debugging that uses queries on the compositional semantics of a...
In debugging distributed programs a distinction is made between an observed error and the program fa...
AbstractWe present a generic scheme for the declarative debugging of programs that are written in re...
We present a generic scheme for the declarative debugging of programs that are written in rewriting-...
Statistical debugging uses dynamic instrumentation and machine learning to identify predicates on pr...
This paper describes the preliminary results of a project investigating approaches to dynamic debugg...
We present a generic scheme for the declarative debugging of programs that are written in rewriting-...
Debugging is a tedious and time-consuming process for software developers. Therefore, providing effe...
Typically debugging begins when during a program execution a point is reached at which an obviously ...
Existing approaches to debugging distributed systems in-volve a cycle of passive observation followe...
Debugging distributed programs is considerably more difficult than debugging sequential programs. We...
Abstract—To reduce the complexity of debugging multithreaded programs, researchers have developed ma...
To reduce the complexity of debugging multithreaded pro-grams, researchers have developed compile- a...
Predicate-based statistical fault-localization techniques locate fault-relevant predicates in a prog...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Algorithmic Debugging is a theory of debugging that uses queries on the compositional semantics of a...
In debugging distributed programs a distinction is made between an observed error and the program fa...
AbstractWe present a generic scheme for the declarative debugging of programs that are written in re...
We present a generic scheme for the declarative debugging of programs that are written in rewriting-...
Statistical debugging uses dynamic instrumentation and machine learning to identify predicates on pr...
This paper describes the preliminary results of a project investigating approaches to dynamic debugg...
We present a generic scheme for the declarative debugging of programs that are written in rewriting-...
Debugging is a tedious and time-consuming process for software developers. Therefore, providing effe...