PDG: a process-level debugger for concurrent programs in the GRAPE rapid prototyping environment

Chris Caerts, Rudy Lauwereins, Jan A. Peperstraete · 2002

The authors describe the process-level debugger of GRAPE, an environment for the rapid prototyping of digital signal processing systems on parallel computers. This debugger allows one to debug concurrent programs that are based on communicating sequential processes. Its unique feature is that it clearly separates the identification of erroneous processes from the exact localisation of the bug on the source-level. This divide-and-conquer approach is absolutely necessary for debugging complex parallel programs in a fast and systematic way, which is a key issue for rapid prototyping. The process-level debugging approach is based on an animation of program behaviour on its hierarchical graphical representation. Graphical views are used that reflect the programmer's mental picture of the application. Hierarchy allows one to employ a top-down debugging approach in which one successively refines the search-space by zooming in on suspect processes first-time-right. They consider both hierarchy that hides algorithmic details, and hierarchy that hides implementation issues. During animation a debugging kernel implementing a record-replay mechanism guarantees reproducible program behaviour even for programs containing asynchronisities.>

Read the paper · More papers on PaperTik