Automating the Debugging of Large Numerical Codes
Fredrik Manne and Svein Olav Andersen
Department of Informatics, University of Bergen, N-5020 Bergen, Norway.
fredrikm@ii.uib.no * sveinoa@ii.uib.no
![]()
Abstract
The development of large numerical codes is usually carried out in an incremental fashion and over a long period of time. In this process, a segment of code might, for reasons of speed or accuracy, be replaced with a new code segment. If the resulting program contains a fault or generates a completely different result than the old one, it is crucial to find the place where the discrepancy first occurs. Finding this place might be a very tedious and time-consuming operation.We present a framework called comparative debugging specifically designed to aid the programmer in debugging such situations. In this setting, the programmer can run both the old and the new program simultaneously, while comparing the execution flow and the values of certain variables in the two codes. If any discrepancy is discovered between the two programs, this is automatically reported back to the user who can then take appropriate action. The presented ideas have been implemented in a debugging tool.
We believe this to be a simple yet powerful way of automating the debugging process that can easily be incorporated into existing debugging programs.
The Web presentation referenced above won the US$ 1,000 award for the best presentation in the SciTools'96 Electronic Proceedings.