Next: Jumping, Previous: Instrumenting, Up: Edebug [Contents][Index]
Edebugは、デバッグするプログラムの実行にたいして、いくつかの実行モードをサポートします。これらの実行モードを、Edebug実行モード(Edebug execution modes)と呼びます。これらをメジャーモードやマイナーモードと混同しないでください。カレントのEdebug実行モードは、プログラムをストップする前にEdebugがどれだけ実行を継続するか — たとえばストップポイントごとにストップ、あるいは次のbreakpointまで継続など — と、ストップする前にEdebugがどれだけ進捗を表示するかを決定します。
Edebug実行モードは通常、ある特定のモードでプログラムを継続させるコマンドをタイプすることにより指定します。以下は、それらのコマンドのテーブルです。プログラムの実行を再開S以外は、少なくともある長さの間だけ実行を継続します。
Stop(ストップ): これ以上プログラムを実行しないで、Edebugのコマンドを待つ(edebug-stop
)。
Step(ステップ): 次のストップポイントでストップする(edebug-step-mode
)。
Next(次へ):
式の後にある次のストップポイントでストップする(edebug-next-mode
)。Jumpingのedebug-forward-sexp
も参照。
Trace(トレース): Edebugのストップポイントごとにpause(通常は1秒)する(edebug-trace-mode
)。
Rapid
trace(高速でトレース):ストップポイントごとに表示を更新するが、実際にpauseはしない(edebug-Trace-fast-mode
)。
Go(進む): 次のbreakpointまで実行する(edebug-go-mode
)。Breakpointsを参照。
Continue(継続): breakpointごとにpauseしてから継続する(edebug-continue-mode
)。
Rapid continue(高速で継続):
ポイントを各breakpointへ移動するが、pauseしない(edebug-Continue-fast-mode
)。
Go non-stop(ストップせず進む):
breakpointを無視する(edebug-Go-nonstop-mode
)。まだS、またはその他の編集コマンドでプログラムをストップするのは可能。
一般的に、上記リストの最初のほうにある実行モードは後のほうの実行モードに比べて、プログラムをより低速に実行、またはすぐにストップさせます。
実行中、またはトレース中は、任意のEdebugコマンドをタイプすることにより、実行をインタラプト(interrupt: 中断、割り込み)できます。Edebugは次のストップポイントでプログラムをストップしてから、タイプされたコマンドを実行します。たとえば、実行中にtをタイプすると、次のストップポイントでトレースモードに切り替えます。Sを使用すれば、他に何も行わずに実行をストップできます。
関数でたまたま読み取り入力が発生した場合には、実行のインタラプトを意図してタイプされた文字は、かわりにその関数により読み取られます。そのプログラムが入力を欲するタイミングに注意を払うことで、そのような意図せぬ結果を避けることができます。
このセクションのコマンドを含むキーボードマクロは、完全には機能しません。プログラムを再開するためにEdebugからexitすると、キーボードマクロの追跡記録は失われます。これを処理するのは、簡単ではありません。またEdebug外部でキーボードマクロを定義または実行しても、Edebug内部のコマンドに影響しません。通常これは利点です。Edebug Options内のedebug-continue-kbd-macro
オプションも参照してください。
新たなEdebugレベルにエンターしたとき、初期の実行モードは変数edebug-initial-mode
の値により与えられます(Edebug Optionsを参照)。デフォルトでこれはstepモードを指定します。たとえば1つのコマンドからインストルメント済みの関数が複数回呼び出された場合は、同じEdebugレベルに再エンターするかもしれないことに注意してください。
このオプションは、traceモードおよびcontinueモードで実行ステップの間を何秒待つか指定します。デフォルトは1秒です。