DUEL - A Very High-Level Debugging Language

Report ID: TR-399-92
Author: Golan, Michael / Hanson, David R.
Date: 1992-11-00
Pages: 16
Download Formats: |Postscript|
Abstract:

Most source-level debuggers accept expressions in the source language, e.g., C, and can print source-language values. This approach is usually justified on grounds that programmers need to know only one language. But the evaluation of source-language expressions or even statements is poorly suited for making non-trivial queries about the program state, e.g., ``which elements of array verb|x[100]| are positive?'' { m Duel} departs from the conventional wisdom: It is a very high-level language designed specifically for source-level debugging of C programs. { m Duel} expressions are a superset of C's and include ``generators,'' which are expressions that can produce zero or more values and are inspired by Icon, APL, and LISP. For example, verb|x[..100] >? 0| displays the positive elements of { t x} and their indices. { m Duel} is implemented on top of { t gdb} and adds one new command to evaluate { m Duel} expressions and display their results. This paper describes { m Duel}'s semantics and syntax, gives examples of its use, and outlines its implementation. { m Duel} is freely available and could be interfaced to other debuggers.

This technical report has been published as
DUEL - A Very High-Level Debugging Language. Michael Golan and David R. Hanson, Proc. of the the Winter USENIX Technical Conference, San Diego, Jan. 1993, pp. 107-117.