Quick links

DUEL - A Very High-Level Debugging Language

Report ID:
October 1992
Download Formats:


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.
Follow us: Facebook Twitter Linkedin