Go to the first, previous, next, last section, table of contents.

ブレーク条件

最も単純なブレークポイントは、プログラムが指定された場所に達した ときに直ちに停止させるというものです。あなたは、それ以外にも、ブレーク ポイントの条件を記述することができます。条件は、あなたの プログラミング言語における論理式と同一になっています(See section )。 条件付きのブレークポイントは、プログラムがそこに達した時に式を 評価します。そして、条件が真のときにのみ、プログラムが停止します。

ブレーク条件には副作用があり、あなたのプログラム内の関数をコールする かもしれません。これは妙に思えるかもしれませんが、これらの効果によって、 同一アドレスの異なったブレークポイントを有効にすることなしに完璧に 断定できるのです(このケースにおいて、GDB は最初に異なったブレーク ポイントを見て、その条件をチェックすることなくプログラムを停止します)。 ブレークポイントのコマンドは、通常、より簡単なものであり、ブレーク ポイントに達した時の結果として副作用が起こるのはフレキシブルなことで あることに注意して下さい(see section ブレーク時のコマンドの起動)。

ブレーク条件は、ブレークポイントが設定された時に、`break' コマンドの `if' という引数を指定することによって記述できます。See section ブレークポイントの設定方。 これらは、いつでも好きなときに `condition' コマンドを使って 変更することができます:

condition bnum expression
expressionbnum で表されるブレークポイントの条件として 指定します。これより、このブレークポイントは expression が真 (C言語のように非ゼロ) になった時にのみプログラムを停止させます。 expression`condition' コマンドが与えられた時には 評価されません。See section
condition bnum
bnum で表されるブレークポイントの条件を削除します。 普通の、条件なしのブレークポイントになります。

ブレークポイントの条件の特別なケースとして、ブレークポイントが指定 された回数に達した時に停止するというものがあります。これは便利な 機能であり、それを実現するには、ブレークポイントを無視する回数 という特別な方法を用います。それぞれのブレークポイントには、整数である 無視する回数が存在します。たいていの場合無視する回数はゼロであり、 従って何の効果もありません。しかし、もし、無視する回数が正の数で あるような場合にプログラムがブレークポイントに達した場合、停止する かわりに、無視する回数から1を引いて処理を継続します。結果として、無視 する回数の値が n の場合、ブレークポイントは、次の n 回 そこに達する間、停止しないことになります。

ignore bnum count
bnum で表されるブレークポイントの無視する回数を、count に 設定します。次の count の回数だけブレークポイントに達しても、 プログラムは停止しません。 次のブレークポイントに達した時必ず停止させるには、count に ゼロを指定して下さい。
cont count
プログラムの実行を継続し、現在プログラムが停止している箇所の ブレークポイントの無視する回数に、count から1引いた値を設定します。 従って、プログラムは、そのブレークポイントに対して count 分の 通過がなければ停止しません。 このコマンドは、ブレークポイントのせいでプログラムが停止している時に のみ許可されます。他の場合、`cont' は無視されます。

もし、ブレークポイントが正の無視する回数と条件を持っている場合、 条件の方はチェックされません。ひとたび無視する回数がゼロになったならば、 条件がチェックされるようになります。

あなたは、条件付きの無視する回数を、いついかなる時でも宣言することが できる `$foo-- <= 0' のようなデバッガ上の簡易変数を使って、 記録を保管することができることを覚えておいて下さい。 See section 簡易変数


Go to the first, previous, next, last section, table of contents.