Font Size: a A A

Tracing And Replay Mechanism For Concurrent Programs' Debugging

Posted on:2006-05-16Degree:MasterType:Thesis
Country:ChinaCandidate:Y CengFull Text:PDF
GTID:2178360212982499Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Nowadays, with the increasing requirement of concurrent software, the analysis, understanding, debugging, testing and maintenance of concurrent programs has been drawn much attention by people. The concurrent programs consist of various synchronous components. Because of process schedule order and communication, different runs on the given input may produce different results. The execution of concurrent programs is non-deterministic, which leads to the fact that the following executions cannot replay the bugs produced by proceeding execution. Thus, the traditional cyclic debugging technique based on repeated re-execution to reproduce bugs does not work effectively for concurrent programs.Guaranteeing reproducibility is a major issue in the concurrent programs debugging. So we integrate trace and replay mechanism into traditional debugging technique, in order to eliminate the non-determination and replay the proceeding execution. We analyze the dependent relations among the communication of processes via message passing, and present an optional trace and replay mechanism to determine the behavior of concurrent programs. At the same time, the concurrent program is often long-running, so it is not possible to replay the whole program from the beginning over and over. For this, we present an incremental trace and replay mechanism and introduce independent checkpointing strategy from fault tolerant systems, which can save the intermediate states of each process independently, and divide each process into several checkpointed intervals. With it, we can replay programs from any interest checkpoint instead of the beginning until finding the bugs.Based on the theory research, we have researched and developed an analysis and debugging assistant tool for concurrent programs, which consists of concurrent programs'trace and replay tool and visual module of process's execution trace. This tool is approach to the concurrent programs that are written in C and their process communication via message passing.The trace and replay module can trace the original execution of programs, and the checkpointings can save each process's intermediate states. So in the replay phase, we can select any interest checkpointed interval to re-execute. The visual module can give a terse graph of program execution, checkpointing location and process communication for user.
Keywords/Search Tags:concurrent program, process, message passing, communication, trace and replay, checkpointing, message logging
PDF Full Text Request
Related items