AADEBUG'95 Abstract

A Consistent Global State Algorithm to Debug Distributed Object-Oriented Applications

P.Placide, G.Florin, L.Duchien and L.Seinturier

CNAM, Laboratoire CEDRIC
292, Rue St Martin
FR-75141 Paris cedex 03
email: {placide, florin, duchien, seintur}@cnam.fr

This paper presents some elements of a debugging tool for distributed object-oriented environments. First and foremost, such a tool must include debugging features of sequential programs. As this problem is correctly solved in many customized products, we are mainly interested in the debugging of communications on distributed object-oriented applications. Distributed debuggers for message passing applications are much more complex than sequential ones. This is mainly due to the non-determinism of message passing communications. The problem has been solved using the Lamport's causal ordering of events and the coherent global state definition [Lamport 78][Leblanc 87][Miller 88] [Chandy 85][Mattern 91]. In order to debug distributed object applications, our first job was to adapt the Lamport's causal partial order of events to the new context of object-oriented distributed applications. In this way we consider block of instructions, method invocations and method executions. Then the causal ordering of distributed object applications is obtained from a local source of order and a communication source of order. The local source of order is in fact the result of different kinds of ordering that can be observed (sequential program ordering, thread forks and joins ordering, synchronization or behaviour instruction ordering and transaction ordering). The communication source of ordering is deduced from the remote procedure calls. Finally, as in the message passing approach, we define the notion of consistent or coherent global state e.g. a correct global state observation. Then, our second job was to implement a prototype to observe partial order relations and to support execution analysis. An object MTrace is included into programs to observe an execution. A post mortem analysis tool produces the observed order relations (the execution graph and the transactional dependences). It also adds timestamps vectors allowing to decide whether a global state is consistent or not.

AADEBUG'95 Program

AADEBUG'95 home page


This page is maintained by Stéphane Schoenig. Please send us any comments or suggestions.