GNU Emacs Lisp Reference Manual
15.1: The Lisp Debugger
The 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.