A conceptual framework for distributed debugging

Nancy J. Wahl, Stephen R. Schach · 1989

As a consequence of timing considerations, program execution behavior on a distributed system may not be reproducible from one execution to the next. This fact has implications for the testing and debugging of programs written in concurrent languages. A debugger assists the programmer in localizing, finding, and removing faults. A debugger should allow the user to examine the execution of a program in detail, replay the same sequence of instructions over and over, control time so that events may be isolated for examination, ascertain whether the correction of a fault removes the observed failure, provide interactive debugging commands to control the debugging process, display the run-time environment, and permit the modification of system and program entities. These capabilities must be provided within the context of a given concurrent programming language and a given distributed architecture. The subject of this dissertation is to develop a distributed debugging methodology that provides these capabilities notwithstanding nonreproducible program execution behavior, concurrently executing processes, a source text that does not reflect the order of execution of the statements, and massive amounts of information. A framework of debugging concepts is provided that is comprehensive enough to meet the demands of debugging concurrent programs that run on the class of distributed machines. This class of machines includes both von Neumann and non von Neumann architectures. A Conceptual Framework for Distributed Debugging has been developed that provides these capabilities while maintaining a high level of debugger transparency and representing the program and architecture in a format that is close to the user's mental images. The Conceptual Framework supports the development of multipass debuggers with reproducible program execution behavior that assist the user in debugging the program process and communication levels of distributed programs. One instantiation of the Conceptual Framework has been implemented to debug programs written in a functional/logic programming language designed to run on a distributed non von Neumann architecture. A graphical distributed debugging simulator has been developed to debug compiled high-level dataflow programs and simulate a dynamic dataflow machine. Both the Conceptual Framework and the debugging simulator are described in detail.

Read the paper · More papers on PaperTik