Relative Debugging: A New Debugging Paradigm

نویسندگان

  • David Abramson
  • Rok Sosi
چکیده

Incremental software development is the process of building new programs by modifying old ones. This method of programming is extremely common, and takes advantage of existing pieces of software which are known to be correct. To date, most software development tools have addressed only one aspect of incremental software development, namely, source code control. An equally important issue is in verifying that future versions of a program have the same dynamic behaviour as the original. Currently, there are no tools which address this issue. In this paper we introduce a new concept called relative debugging, which supports the incremental development of computer programs. Relative debugging makes it possible to compare the execution of two programs with the same functionality. The programs can run on the same computer, or on di erent computers connected by a network. They can di er in their source programming language or in implementation details. One of the programs usually serves as a reference version which produces the desired results. The execution of the other process is compared to the reference version in order to nd discrepancies. We describe basic primitives for relative debugging and their implementation in a debugger called Guard. Guard is built on top of our portable debugging interface which provides a debugging platform for heterogeneous environments. The utility of Guard is illustrated by a practical example, in which a program written in Fortran is used to nd errors in a version of the same code written in the C programming language.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Quantitative Approach to Functional Debugging

Functional debugging dominates both development time and cost of modern design process. Two dominant debugging techniques are simulation and emulation. Neither of them provides an adequate debugging solution. Design simulation is two to ten orders of magnitude slower than functional execution with respect to the fabricated design. Design emulation and fabrication provide high execution speed, b...

متن کامل

Debugging techniques for declarative languages: Profiling, program slicing and algorithmic debugging

The task of debugging can be arduous. A bug can be evident with a single glance, or it can be hidden in the deepest lurking place of our program. Nevertheless, surprisingly, debugging is one of the software processes that has been mostly abandoned by the scientific community, and the same debugging techniques used twenty years ago are still being used today. The situation is not different regar...

متن کامل

Relative Debugging: A new methodology for debugging scientific applications

Because large scientific codes are rarely static objects, developers are often faced with the tedious task of accounting for discrepancies between new and old versions. This paper describes a new technique called relative debugging that addresses this problem by automating the process of comparing a modified code against a correct reference code. The paper examines the utility of the relative d...

متن کامل

A Comparative Study of Algorithmic Debugging Strategies

Algorithmic debugging is a debugging technique that has been extended to practically all programming paradigms. It is based on the answers of the programmer to a series of questions generated automatically by the algorithmic debugger. Therefore, the performance of the technique is strongly dependent on the number and the complexity of these questions. In this work we overview and compare curren...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1994