% Function INVOKE-DEBUGGER
Function INVOKE-DEBUGGER
invoke-debugger
condition => |
condition - コンディションオブジェクト
invoke-debugger
は、conditionとともにデバッガーへ入ろうと試みます。
もし*debugger-hook*
がnil
ではないとき、
その値は関数(あるいは関数の名前)で無ければならず、
標準のデバッガーに入る前に呼び出されます。
その関数が呼び出されるときに
*debugger-hook*
にはnil
が束縛され、
その関数は2つの引数としてconditionと、
nil
を束縛する前の
*debugger-hook*
の値が渡されます。
もしその関数が普通に終わったとき、標準のデバッガーに入ります。
標準のデバッガーは決して直接戻りません。
戻るときは、restart
関数を使用したような
ただ非局所的な遷移の制御のみで起こります。
(ignore-errors ;通常はデバッガーに入るのを抑制する
(handler-bind ((error #'invoke-debugger)) ;しかしここは強制的にデバッガーに入る
(error "Foo.")))
Debug: Foo.
To continue, type :CONTINUE followed by an option number:
1: Return to Lisp Toplevel.
Debug>
*debugger-hook*
はnil
に束縛され、
プログラムの実行は中止となり、
デバッガーに入ります。
なし。
なし。