Abstract

This paper describes algorithms for a distributed program debugger based on a replay technique. Halting at breakpoints and selective tracing are its fundamental features. In distributed systems, a given breakpoint or trace condition does not uniquely define the global state at which to halt or trace, because of the asynchrony of processes and communications. This paper therefore proposes the “first” global state Inf(P) to be the best global state at which to halt or trace, for a given condition P. Two kinds of global conditions related to plural processes, Conjunctive Predicates and Disjunctive Predicates, are considered. The authors present an algorithm that halts processes at Inf(P) for a given Conjunctive Predicate P. It is also shown that, for a Disjunctive Predicate P, it is impossible to halt at Inf(P), but possible to halt at some state which satisfies P. An algorithm is also provided for selective tracing when a Conjunctive or Disjunctive Predicate selection condition is given.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.