Automating the Debugging of Large Numerical Codes
Fredrik Manne, Svein Olav Andersen · Birkhäuser Boston eBooks · 1997
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. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.