next up previous contents
Next: 3.2 The Command Loop Up: 3 The Debugger Previous: 3 The Debugger

3.1 Debugger Introduction

The CMU Common Lisp debugger is unique in its level of support for source-level debugging of compiled code. Although some other debuggers allow access of variables by name, this seems to be the first Common Lisp debugger that:

These features allow the debugging of compiled code to be made almost indistinguishable from interpreted code debugging.

The debugger is an interactive command loop that allows a user to examine the function call stack. The debugger is invoked when:

Note: there are two debugger interfaces in CMU CL: the TTY debugger (described below) and the Motif debugger. Since the difference is only in the user interface, much of this chapter also applies to the Motif version. See section 2.7.1 for a very brief discussion of the graphical interface.

When you enter the TTY debugger, it looks something like this:

Error in function CAR.
Wrong type argument, 3, should have been of type LIST.

Restarts: 0: Return to Top-Level.

Debug (type H for help)

(CAR 3) 0]

The first group of lines describe what the error was that put us in the debugger. In this case car was called on 3. After Restarts: is a list of all the ways that we can restart execution after this error. In this case, the only option is to return to top-level. After printing its banner, the debugger prints the current frame and the debugger prompt.


next up previous contents
Next: 3.2 The Command Loop Up: 3 The Debugger Previous: 3 The Debugger

Raymond Toy
Mon Jul 14 09:11:27 EDT 1997