This variable is used by the debugger when it displays the stack frames. Handler frames are created by error handlers (see The stack in the debugger), and are normally not shown by the debugger. However if *print-handler-frames*
is set to t
then the handler frames are displayed.
USER 162 > (setq lw:*print-handler-frames* t)
T
USER 163 > (defun test (n)
(handler-case (fn-to-use n)
(type-error () (format t "~%Type error~%") 0)))
TEST
USER 164 > (test #C(1 1))
Error: Undefined function: FN-TO-USE, with args
(#C(1 1))
1 (continue) Call FN-TO-USE again
2 (abort) return to top loop level 0.
Type :c followed by a number to proceed
USER 165 : 1 > :b 10
Catch frame: (NIL)
Catch frame: #:|block-catcher-1854|
Call to *%UNDEFINED-FUNCTION-FUNCTION :
Call to %EVAL :
Call to RETURN-FROM :
Call to %EVAL :
Call to EVAL-AS-PROGN :
Handler frame: ((TYPE-ERROR %LEXICAL-CLOSURE%
(LAMBDA
(CONDITIONS::TEMP)
(GO #:|lambda-633|))
((#:|lambda-632|) (N . #))
NIL ((#:|lambda-631|) (TEST))
((#:|lambda-633| # #))))
Catch frame: "<* Catch All Object *>"
Call to LET :
LispWorks User Guide and Reference Manual - 13 Feb 2015