This paper discusses the use of "relative debugging" as a technique for locating errors in a program that has been ported or developed using evolutionary software engineering techniques. It works on the premise that it is possible to find errors by comparing the contents of key data structures at run time between a "working" version and the new code. Previously, our reference implementation of relative debugging, called Guard, only supported comparison of regular data structures like scalars, simple structures and arrays. Recently, we augmented Guard enabling it to compare dynamically allocated structures like linked lists. Such comparisons are complex because the raw values of pointers cannot be compared directly. Here we describe the changes that were required to support dynamic data types. The functionality is illustrated in a small case study, in which a parallel particle code behaves differently as the number of processors is altered.
|Title of host publication||16th ISCA International Conference on Parallel and Distributed Computing Systems 2003, PDCS 2003|
|Editors||Seong-Moo Yoo, Hee Yong Youn|
|Publisher||International Society for Computers and Their Applications (ISCA)|
|Number of pages||8|
|State||Published - 2003|
|Event||16th International Conference on Parallel and Distributed Computing Systems, PDCS 2003 - Reno, United States|
Duration: Aug 13 2003 → Aug 15 2003
|Name||16th ISCA International Conference on Parallel and Distributed Computing Systems 2003, PDCS 2003|
|Conference||16th International Conference on Parallel and Distributed Computing Systems, PDCS 2003|
|Period||8/13/03 → 8/15/03|
Bibliographical notePublisher Copyright:
© PDCS 2003. All rights reserved.
ASJC Scopus subject areas
- Computer Networks and Communications
- Hardware and Architecture