Abstracts - 1997 ANNUAL TECHNICAL CONFERENCE
A Simple and Extensible Graphical Debugger
David R. Hanson and Jeffrey L. Korn
Department of Computer Science
35 Olden St., Princeton, NJ 08544
deet is a simple but powerful debugger for ANSI C and Java. It
differs from conventional debuggers in that it is machine-independent,
graphical, programmable, distributed, extensible, and small.
Low-level operations are performed by communicating with a ``nub,'' which is
a small set of machine-dependent functions that are embedded in the
target program at compile-time, or are implemented on top of existing debuggers.
deet has a set of commands that communicate with the
target's nub. The target and deet communicate by passing
messages through a pipe or socket, so they
can be on a different machines.
deet is implemented in tksh, an extension of the Korn shell that
provides the graphical facilities of Tcl/Tk. Users can browse source files,
watch variables, and examine data structures by pointing and clicking.
Additional facilities, like conditional breakpoints, can be
written in either Tcl or the shell.
Most debuggers are large and complicated, deet is less than 1,500 lines of shell
plus a few hundred lines of machine-specific nub code.
It is thus easy to understand, modify, and extend.
We describe an implementation of the nub API for Java and an
implementation that is layered on top of gdb.
We have also implemented a version of gdb
using the nub API, which demonstrates the modularity of the design.