Next: Invoking the Debugger, Previous: Using Debugger, Up: Debugger
The debugger buffer (in Debugger mode) provides special commands in addition to the usual Emacs commands. The most important use of debugger commands is for stepping through code, so that you can see how control flows. The debugger can step through the control structures of an interpreted function, but cannot do so in a byte-compiled function. If you would like to step through a byte-compiled function, replace it with an interpreted definition of the same function. (To do this, visit the source for the function and type C-M-x on its definition.) You cannot use the Lisp debugger to step through a primitive function.
Here is a list of Debugger mode commands:
Continuing is possible after entry to the debugger due to function entry
or exit, explicit invocation, or quitting. You cannot continue if the
debugger was entered because of an error.
The stack frame made for the function call which enters the debugger in
this way will be flagged automatically so that the debugger will be
called again when the frame is exited. You can use the u command
to cancel this flag.
debug-on-entry.
If the debugger was entered due to a C-g but you really want
to quit, and not debug, use the q command.
The r command is useful when the debugger was invoked due to exit
from a Lisp call frame (as requested with b or by entering the
frame with d); then the value specified in the r command is
used as the value of that frame. It is also useful if you call
debug and use its return value. Otherwise, r has the same
effect as c, and the specified return value does not matter.
You can't use r when the debugger was entered due to an error.
debug-on-entry. Warning: if you redefine such a
function and thus cancel the effect of debug-on-entry, it may
erroneously show up in this list.