Next: , Previous: Edebug Misc, Up: Edebug


17.2.6 ブレークポイント

edebugのステップ実行モードは、つぎの停止位置に達すると実行を停止します。 edebugが実行を止める方法は3つあります。 ブレークポイント、グローバルブレーク条件、ソースのブレークポイントです。

edebugを使用中には、読者がテスト中のプログラムにブレークポイント (breakpoint)、つまり、実行を停止すべき箇所を設定できます。 Using Edebugで定義した任意の停止位置にブレークポイントを設定できます。 ブレークポイントの設定や解除において対象となる停止位置は、 ソースコードバッファのポイント位置かそのあとにある停止位置です。 ブレークポイントに関するedebugコマンドはつぎのとおりです。

b
ポイント位置かそのうしろにある停止位置にブレークポイントを設定する (edebug-set-breakpoint)。 前置引数を指定すると、一時的なブレークポイントになる (そこでプログラムが停止すると解除される)。
u
ポイント位置かそのうしろにある停止位置の(あれば)ブレークポイントを解除する (edebug-unset-breakpoint)。
x condition <RET>
conditionnil以外の値に評価される場合にのみ プログラムを停止する条件付きブレークポイントを設定する (edebug-set-conditional-breakpoint)。 前置引数を指定すると、一時的なブレークポイントになる。
B
現在の定義内にあるつぎのブレークポイントにポイント位置を移動する (edebug-next-breakpoint)。

edebug内では、bでブレークポイントを設定し、 uで解除できます。 まず目的のedegugの停止位置にポイント位置を移動し、 bを打ってその箇所にブレークポイントを設定したり、 uを打ってその箇所のブレークポイントを解除します。 設定されていないブレークポイントを解除しても、なにも起こりません。

定義を再評価したり再処置すると、その中のブレークポイントすべてを解除します。

条件付きブレークポイント(conditional breakpoint)は、 プログラムがこの箇所に達するたびに条件を検査します。 条件を評価中に発生するどんなエラーも無視し、 nilとして扱います。 条件付きブレークポイントを設定するにはxを使い、 条件式はミニバッファで指定します。 すでに条件付きブレークポイントを設定してある停止位置に 条件付きブレークポイントを設定し直すと、 それまでの条件式がミニバッファに入るので編集できます。

ブレークポイントを設定するコマンドに前置引数を指定すると、 条件付き/無条件ブレークポイントを一時的なものにできます。 一時的ブレークポイントでプログラムが停止すると、 そのブレークポイントは自動的に解除されます。

edebugのモードが非停止実行でなければ、 edebugはブレークポイントでつねに停止するか休止します。 非停止実行モードでは、ブレークポイントを完全に無視します。

ブレークポイントの場所を確認するには、コマンドBを使います。 同じ関数内のポイント箇所のうしろにあるブレークポイントか、 後続のものがなければ最初のブレークポイントにポイント位置を移動します。 このコマンドは実行を継続しません。 バッファ内で単にポイントを移動するだけです。