|
TR-399-92
DUEL - A Very High-Level Debugging Language |
|
| Authors: | Golan, Michael, Hanson, David R. |
| Date: | November 1992 |
| Pages: | 16 |
| Download Formats: | [Postscript] |
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. |
|