Abstract
In this thesis we propose an effective and easy-to-use parallel program debugging approach based on timing-synchronized deterministic execution technology. Parallel programs are known difficult to debug because of the nondeterministic nature and non-reproducible bugs. To resolve this issue, we propose a parallel programs debugger, named GDB-Parallel, which is capable of handling multi-thread programs and monitoring thread communications and interleavings based upon deterministic Multi-Core Instruction Set Simulation (MCISS) technology. Basically, our approach constructs execution path according to the chronological order derived from a user selected timing model and effectively eliminates the replay-related issues and concerns. We have actually implemented the idea by modifying QEMU and integrating with GDB. The usage and operation of our proposed debugger is almost the same as the traditional sequential GDB debugger as we maintain all sequential debugging features while having some new parallel debugging features. We have tested on many real examples and we show a few snapshots at the end of this thesis to demonstrate the effectiveness of our tool.