Debugging distributed applications is a wellknown challenge within the realm of Computer Science. Common problems faced by developers include: lack of an observable global state, ...
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...
Dynamic program slicing is an effective technique for narrowing the errors to the relevant parts of a program when debugging. Given a slicing criterion, the dynamic slice contains...
Object-oriented programs, when executed, produce a complex webs of objects and references between them, generally referred to as object graphs. These object graphs are difficult t...
An execution trace contains a description of everything that happened during an execution of a program. Execution traces are useful, because they can help software engineers under...