Function BREAK

UP


Function BREAK

Function BREAK

構文

break &optional format-control &rest format-arguments => nil

引数と戻り値

format-control - format-control。デフォルトは実装依存。
format-arguments - format-arguments

定義

breakは、format-controlformat-argumentsformatで出力し、 そのあとプログラムによるエラー捕捉の機能による 割り込みの可能性を一切許さずに 直接デバッガーに入ります。

もしcontinue restartがデバッガー内で使用されたときは、 何の異常状態の回復処理を行わずに breakは即座にnilを返却します。

breakはデバッガーに入ろうとする前に *debugger-hook*nilを束縛します。

例文

(break "You got here with arguments: ~:S." '(FOO 37 A))
>>  BREAK: You got here with these arguments: FOO, 37, A.
>>  To continue, type :CONTINUE followed by an option number:
>>   1: Return from BREAK.
>>   2: Top level.
>>  Debug> :CONTINUE 1
>>  Return from BREAK.
=>  NIL

副作用

デバッガーに入ります。

影響

*debug-io*

例外

なし。

参考

error, invoke-debugger

備考

breakは、エラーの通知を使用せず、 プログラムの「ブレークポイント」として 一時的にデバッグに入りたいときに使われます。 このような理由から、breakcerrorが取るような continue-format-control引数を受け取りません。 この点と、コンディションの捕捉によって割り込みが生じるという可能性がない点が、 breakcerror間のプログラムに見える違いです。

breakcerrorのユーザーインターフェイスの外観は、 実装が必要とするインターフェイスにしたがって、 より大きく変えてしまっても許されます。 例えば、breakは従来のデバッガーではなく Lispのread-eval-print loopに入ってしまっても許されます。

breakは下記のように定義できます。

(defun break (&optional (format-control "Break") &rest format-arguments)
  (with-simple-restart (continue "Return from BREAK.")
    (let ((*debugger-hook* nil))
      (invoke-debugger
          (make-condition 'simple-condition
                          :format-control format-control
                          :format-arguments format-arguments))))
  nil)

TOP, Github