C. Caerts et al., PDG - A PROCESS-LEVEL DEBUGGER FOR CONCURRENT PROGRAMS IN THE GRAPE PARALLEL PROGRAMMING ENVIRONMENT, Future generations computer systems, 11(2), 1995, pp. 199-210
In this paper, we describe the process-level debugger of GRAPE, our hi
erarchical graphical programming environment for concurrent programs.
Its unique feature is that it clearly separates the identification of
erroneous processes, which we call process-level debugging, from the e
xact localisation of the bug at the source-level. This divide-and-conq
uer approach is absolutely necessary for debugging complex parallel pr
ograms in a fast and systematic way. Our process-level debugging appro
ach is based on an animation of the program's behaviour on its hierarc
hical graphical representations. Graphical views are used that reflect
the programmer's mental picture of the actual application. Hierarchy
allows us to employ a top-down debugging approach in which we successi
vely refine the search-space by zooming in on suspect processes first-
time-right. During animation a debugging kernel implementing a record-
replay mechanism guarantees reproducible behaviour.