Font Size: a A A

A distributed debugger based on deterministic repla

Posted on:1997-08-13Degree:M.ScType:Thesis
University:Concordia University (Canada)Candidate:Sienkiewicz, JoannaFull Text:PDF
GTID:2468390014484651Subject:Computer Science
Abstract/Summary:
The growing popularity of distributed computing creates a demand for tools to support development of distributed software. A debugger is (a basic software development tool needed by all programmers. Development of a distributed program requires a "good" debugging tool since distributed programs are more difficult to develop and debug than sequential programs. The difficulty in writing distributed software systems results from non-determinism inherent in program behaviour, lack of precise global states, complex patterns of interaction, large state space, probe effect, and communication limitations. Additional complexity arises due to rare conditions and violation of implicit synchronization requirements.;In this thesis we describe DDB (Distributed DeBugger) a debugger for distributed and multithreaded programs running under Mach operating systems based on the well known technique of instant replay. The DDB debugger addresses the issue of non-determinism in distributed programs by dividing the debugging activities into two phases-record and replay. In the record phase the distributed program is executed with the debugging mechanism present which collects and stores all the needed information for "replay". This information is used in two ways. First, it is used to create a high level view of the program execution in the form of time-process diagram, then, in the replay phase, this information is used to ensure that the execution takes the same path as the previous one. In the replay phase the programmer can obtain low level details of program execution by using source code level debugging techniques offered by the popular GDB debugger that is attached to each process of the distributed program.;The present prototype implementation of DDB can be enhanced in the future with tools providing functionalities like checkpoint and rollback, global breakpoint or various graphical interpretations of the execution, or sophisticated stepping semantics.
Keywords/Search Tags:Distributed, Debugger, Execution
Related items