Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students

A Simple and Extensible Graphical Debugger

David R. Hanson and Jeffrey L. Korn
Department of Computer Science
Princeton University
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, set breakpoints, 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.
?Need help? Use our Contacts page.

Last changed: 22 Apr 2002 ml
Technical Program
Anaheim Index