Abstract

Relative debugging is a technique that addresses the problem of debugging programs developed using evolutionary software techniques. Recent developments allow relative debugging to be used on programs that have been ported from serial to parallel architectures. Such programs may change significantly in the porting process, and this raises many issues for the debugging process, such as how the array data and code transformations that occur in these situations can be modelled. Relative debugging can also be effectively used in situations where the parallel programs themselves have undergone evolutionary change. This paper presents the architecture of a parallel relative debugger, and reveals a number of novel and powerful techniques that have been developed for dealing with the issues of relative debugging in a parallel environment.