Relative debugging is
a technique that allows a user to compare data
between two executing programs. It was devised to aid the testing
and debugging of programs that are either modified in some way,
or are ported to other computer platforms. It is effectively
a hyrbid test & debug methodology.
Whilst traditional debuggers
force the programmer to understand the expected state and internal
operation of a program, relative debugging makes it possible
to trace errors by comparing the contents of
data structures between programs at run time. In this way, the
programmer is less concerned with the actual state of the program,
and more concerned with finding when and where differences between
the old and new codes occur. The methodology requires users to
start by observing that two programs generate different results,
and then iteratively moving back through the data flow of the
codes to determine the point at which they start producing different
answers.
We have developed a
relative debugger called Guard. Guard supports
the execution of both sequential and parallel programs on a range
of platforms, and exists for a number of different development
environments.
Guard can be applied
to both sequential and parallel programs.
A commercial implementation
of Guard is available from Guardsoft.
This project is supported
by:
|