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.