Common Lisp the Language
2nd Edition

When a program does not know how to continue
and no active handler is able to
advise it
the ``interactive condition handler
'' or ``debugger
'' can be
entered. This happens implicitly through the use of functions such as error
and cerror
or explicitly through the use of the function invoke-debugger.
The interactive condition handler never returns directly; it returns only through structured non-local transfer of control to specially defined restart points that can be set up either by the system or by user code. The mechanisms that support the establishment of such structured restart points for portable code are outlined in sections 29.3.5 through 29.3.10.
Actually
implementations may also provide extended debugging facilities that
allow return from arbitrary stack frames. Although such commands are frequently
useful in practice
their effects are implementation-dependent because they
violate the Common Lisp program abstraction. The effect of using such
commands is undefined with respect to Common Lisp.