Function INVOKE-DEBUGGER

UP


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に束縛され、 プログラムの実行は中止となり、 デバッガーに入ります。

影響

*debug-io*, *debugger-hook*,

例外

なし。

参考

error, break

備考

なし。


TOP, Github