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.continue, type :CONTINUE followed by an option number:
To 1: Return to Lisp Toplevel.
Debug>
*debugger-hook*
はnil
に束縛され、 プログラムの実行は中止となり、 デバッガーに入ります。
なし。
なし。