Skip to main content

18.1 The Lisp Debugger

The ordinary Lisp debugger provides the ability to suspend evaluation of a form. While evaluation is suspended (a state that is commonly known as a break), you may examine the run time stack, examine the values of local or global variables, or change those values. Since a break is a recursive edit, all the usual editing facilities of Emacs are available; you can even run programs that will enter the debugger recursively. See Recursive Editing.

Error Debugging  Entering the debugger when an error happens.
Infinite Loops  Stopping and debugging a program that doesn’t exit.
Function Debugging  Entering it when a certain function is called.
Variable Debugging  Entering it when a variable is modified.
Explicit Debug  Entering it at a certain point in the program.
Using Debugger  What the debugger does.
Backtraces  What you see while in the debugger.
Debugger Commands  Commands used while in the debugger.
Invoking the Debugger  How to call the function debug.
Internals of Debugger  Subroutines of the debugger, and global variables.