Previous: Edebug and Macros, Up: Edebug [Contents][Index]
以下のオプションは、Edebugの動作に影響を与えます:
Edebugが使用される前に呼び出される関数。この関数は毎回新たな値をセットする。Edebugこれらの関数を一度呼び出したら、その後edebug-setup-hook
nil
にリセットする。使用するパッケージに関係するEdebug仕様をロードするために使用dきるが、それはEdebugを使用するときだけである。Instrumentingを参照。
これが非nil
の場合はdefun
やdefmacro
のような定義フォームの普通に評価すると、Edebug用にインストルメントされる。これはeval-defun
、eval-region
、eval-buffer
、and
eval-current-buffer
に適用される。
このオプションの切り替えには、コマンドM-x edebug-all-defsを使用する。Instrumentingを参照。
これが非nil
の場合eval-defun
、eval-region
、eval-buffer
、eval-current-buffer
は、たとえフォームが何も定義していなくても、すべてのフォームをインストルメントする。これはロードとミニバッファー内の評価には適用されない。
このオプションの切り替えには、コマンドM-x edebug-all-formsを使用する。Instrumentingを参照。
これが非nil
の場合、Edebugはウィンドウ構成の保存とリストアを行なう。これにはある程度時間がかかるので、ウィンドウ構成に何が起こってもプログラムに関係しない場合は、この変数をnil
にセットしたほうがよい。
値がリストの場合は、リストされたウィンドウだけが保存およびリストアされる。
Edebug内では、この変数をインタラクティブに変更するためにWコマンドを使用できる。Edebug Display Updateを参照。
これが非nil
の場合、Edebugは表示されているすべてのバッファー内のポイントを保存およびリストアする。
選択されていないウィンドウ内に表示されているバッファーのポイントを変更するコードをデバッグしている場合は、他のバッファーのポイントを保存およびリストアする必要がある。その後にEdebugまたはユーザーがそのウィンドウを選択した場合は、そのバッファー内のポイントは、そのウィンドウのポイント値に移動される。
すべてのバッファー内のポイントの保存とリストアは、それぞれのウィンドウを2回選択する必要があり高価な処理のため、必要なときだけ有効にする。Edebug Display Updateを参照。
この変数が非nil
の場合、Edebugが最初にアクティブになったときの、Edebugの最初の実行モードを指定する。指定できる値はstep
、next
、go
、Go-nonstop
、trace
、Trace-fast
、continue
、Continue-fast
。
デフォルト値はstep
。Edebug Execution Modesを参照。
これが非nil
の場合が、各関数のエントリーとexitをトレースする。トレース出力は、関数のエントリーとexitを行ごとに、再帰レベルにしたがって*edebug-trace*という名前のバッファーに表示される。
Trace Bufferのedebug-tracing
も参照のこと。
非nil
の場合、Edebugはデバッグされるすべての式のカバレッジをテストする。Coverage Testingを参照。
非nil
の場合は、Edebug外で実行されている任意のキーボードマクロの定義または実行を継続する。これはデバッグされないので、慎重に使用すること。Edebug Execution Modesを参照。
非nil
の場合、Edebugは式の結果を表示するときに、その式自体のインストルメント結果の削除を試みる。マクロをデバッグするときは、式の結果自体がインストルメントされた式になるということに関連する。実際的な例ではないが、サンプル例の関数fac
がインストルメントされたとき、そのフォームのマクロを考えてみるとよい。
(defmacro test () "Edebug example." (if (symbol-function 'fac) …))
test
マクロをインストルメントしてステップ実行すると、デフォルトではsymbol-function
呼び出しは多数のedebug-after
フォームとedebug-before
フォームをもつことになり、それにより“実際の”結果の確認が難しくなり得る。edebug-unwrap-results
が非nil
の場合、Edebugは結果からこれらのフォームの削除を試みる。
debug-on-error
の以前がnil
の場合、Edebugはdebug-on-error
をこの値にバインドする。Trapping Errorsを参照。
debug-on-quit
の以前の値がnil
の場合、Edebugはdebug-on-quit
にこの値をバインドする。Trapping Errorsを参照。
Edebugがアクティブな間にedebug-on-error
またはedebug-on-quit
の値を変更した場合は、次回に新たなコマンドを通じてEdebugが呼び出されるまで、これらの値は使用されない。
非nil
の場合、値はすべてのステップポイントでテストされる式である。式の結果がnil
の場合は、breakする。エラーは無視される。Global Break Conditionを参照。