Previous: , Up: Edebug   [Contents][Index]


18.2.16 Edebugのオプション

以下のオプションはEdebugの動作に影響を与えます:

User Option: edebug-setup-hook

Edebugが使用される前に呼び出される関数。この関数は毎回新たな値をセットする。Edebugはこれらの関数を一度呼び出したら、その後にedebug-setup-hooknilにリセットする。使用するパッケージに関係するEdebug仕様をロードするために使用でdきるがそれはEdebugを使用するときだけである。Instrumentingを参照のこと。

User Option: edebug-all-defs

これが非nilの場合にdefundefmacroのような定義フォームの普通に評価すると、Edebug用にインストルメントされる。これはeval-defuneval-regioneval-buffer、and eval-current-bufferに適用される。

このオプションの切り替えにはコマンドM-x edebug-all-defsを使用する。Instrumentingを参照のこと。

User Option: edebug-all-forms

これが非nilの場合にはeval-defuneval-regioneval-buffereval-current-bufferはたとえフォームが何も定義していなくても、すべてのフォームをインストルメントする。これはロードとミニバッファー内の評価には適用されない。

このオプションの切り替えにはコマンドM-x edebug-all-formsを使用する。Instrumentingを参照のこと。

User Option: edebug-eval-macro-args

これが非nilなら、生成されるコード内のすべてのマクロ引数がインストルメントされる。edebug-form-specはすべてのマクロにたいして、このオプションをオーバーライドする。ある引数を評価して他の引数を評価しないマクロにたいする例外を指定するためには、edebug-form-specを指定するためにdef-edebug-specを使用すること。

User Option: edebug-save-windows

これが非nilなら、Edebugはウィンドウ構成の保存とリストアを行なう。これにはある程度の時間を要するので、ウィンドウ構成に何が起こってもプログラムに関係なければ、この変数をnilにセットしたほうがよい。

値がリストならリストされたウィンドウだけが保存およびリストアされる。

Edebug内ではこの変数をインタラクティブに変更するためにWコマンドを使用できる。Edebug Display Updateを参照のこと。

User Option: edebug-save-displayed-buffer-points

これが非nilならEdebugは表示されているすべてのバッファー内のポイントを保存およびリストアする。

選択されていないウィンドウ内に表示されているバッファーのポイントを変更するコードをデバッグしている場合は、他のバッファーのポイントを保存およびリストアする必要がある。その後にEdebugまたはユーザーがそのウィンドウを選択した場合は、そのバッファー内のポイントはそのウィンドウのポイント値に移動される。

すべてのバッファー内のポイントの保存とリストアは、それぞれのウィンドウを2回選択する必要があり高価な処理なので、必要なときだけ有効にする。Edebug Display Updateを参照のこと。

User Option: edebug-initial-mode

この変数が非nilなら、Edebugが最初にアクティブになったときのEdebugの最初の実行モードを指定する。指定できる値はstepnextgoGo-nonstoptraceTrace-fastcontinueContinue-fast

デフォルト値はstep。この変数はC-x C-a C-mでインタラクティブにセットできる。Edebug Execution Modesを参照のこと。

User Option: edebug-trace

これが非nilなら各関数のエントリーとexitをトレースする。トレース出力は関数のエントリーとexitを行ごとに、再帰レベルにしたがって*edebug-trace*という名前のバッファーに表示される。

Trace Bufferedebug-tracingも参照されたい。

User Option: edebug-test-coverage

nilならEdebugはデバッグされるすべての式のカバレッジをテストする。Coverage Testingを参照のこと。

User Option: edebug-continue-kbd-macro

nilならEdebug外部で実行されている任意のキーボードマクロの定義または実行を継続する。これはデバッグされないので慎重に使用すること。Edebug Execution Modesを参照されたい。

User Option: edebug-print-length

nilなら、それはEdebugでの結果プリントにおけるprint-lengthのデフォルト値。Output Variablesを参照のこと。

User Option: edebug-print-level

nilなら、それはEdebugでの結果プリントにおけるprint-levelのデフォルト値。Output Variablesを参照のこと。

User Option: edebug-print-circle

nilなら、それはEdebugでの結果プリントにおけるprint-circleのデフォルト値。Output Variablesを参照のこと。

User Option: edebug-unwrap-results

nilならEdebugは式の結果を表示するときに、その式自体のインストルメント結果の削除を試みる。マクロをデバッグするときは、式の結果自体がインストルメントされた式になるということに関連するオプションである。実際的な例ではないが、サンプル例の関数facがインストルメントされたとき、そのフォームのマクロを考えてみるとよい。

(defmacro test () "Edebug example."
  (if (symbol-function 'fac)
      …))

testマクロをインストルメントしてステップ実行すると、デフォルトではsymbol-function呼び出しは多数のedebug-afterフォームとedebug-beforeフォームをもつことになり、それにより実際の結果の確認が難しくなり得る。edebug-unwrap-resultsが非nilならEdebugは結果からこれらのフォームの削除を試みる。

User Option: edebug-on-error

debug-on-errorが以前nilだったら、Edebugはdebug-on-errorをこの値にバインドする。Trapping Errorsを参照のこと。

User Option: edebug-on-quit

debug-on-quitの以前の値がnilなら、Edebugはdebug-on-quitにこの値をバインドする。Trapping Errorsを参照のこと。

Edebugがアクティブな間にedebug-on-erroredebug-on-quitの値を変更したら、次回に新たなコマンドを通じてEdebugが呼び出されるまでこれらの値は使用されない。

User Option: edebug-global-break-condition

nilなら、値はすべてのステップポイントでテストされる式である。式の結果がnilならbreakする。エラーは無視される。Global Break Conditionを参照のこと。

User Option: edebug-sit-for-seconds

実行モードがtraceかcontinueでbreakpointに達した際に一時停止する秒数。Edebug Execution Modesを参照のこと。

User Option: edebug-sit-on-break

breakpointに達したときにedebug-sit-for-secondsの間、一時停止するかどうか。nilで一時停止の抑止、非nilなら一時停止を許可。

User Option: edebug-behavior-alist

デフォルトでは、このalistにはキーがedebugで3つの関数edebug-enteredebug-beforeedebug-afterからなるリストという1つのエントリーが含まれる。これらの関数はインストルメントされるコードに挿入される関数のデフォルト実装である。Edebugの全般的な挙動を変更するためには、このデフォルトエントリーを変更する。

Edebugの挙動はこのalistにエントリーにユーザーが選択したキーと3つの関数を追加することにより、定義ごとにもとづいて変更もできる。それからインストルメントされた定義のシンボルプロパティedebug-behaviorに新たなエントリーのキーをセットすれば、Edebugはその定義にたいして自身の関数を呼び出す箇所で新たな関数を呼び出す。

User Option: edebug-new-definition-function

定義やクロージャのbodyをラップした後にEdebugが実行する関数。Edebugが自身のデータを初期化後に、この関数は定義に関連付けられたシンボル(Edebugが定義または生成した実際のシンボルかもしれない)を単一の引数として呼び出される。この関数はEdebugによりインストルメントされる各定義のシンボルプロパティedebug-behaviorをセットするために使用されるかもしれない。

User Option: edebug-after-instrumentation-function

使用前にEdebugのインストルメントの検査や修正を行うには、インストルメントするトップレベルのフォームを単一の引数として受け取り、その後にEdebugがインストルメントの最終結果として使用することになる同一フォームあるいは置換フォームをリターンする関数をこの変数にセットする。