条件付きブレークポイント

ブレークポイントの動作を制御するため、オプションのブレークポイント・パラメーターが 使用されます。

ブレークポイントを設定する際、任意のブレークポイント・ウィザード の「オプション・パラメーター」ページで以下のパラメーターを設定することで (通常、既存のブレークポイントの編集によって)、 そのブレークポイントを条件付き (停止するか、停止しないか) にできます。

オプションのブレークポイント・パラメーター 説明 サポートされるブレークポイントのタイプ
スレッド

ブレークポイントをスレッド固有にできます。ウィザードで、 ブレークポイントがすべてのスレッドに適用される (デフォルト) のか、それとも 1 つの特定のスレッドに適用される (n=one) のかを 指定できます。

このパラメーターは、すべてのタイプのブレークポイントでサポートされます。
頻度 頻度コントロールは、いつブレークポイントで停止するのか、いつブレークポイントをスキップするのかを、 デバッガーに指示するために使用します。デバッガーは、各ブレークポイントが検出された回数を カウントします。このセクション内のフィールドは、何回目のブレークポイント検出で デバッガーが初めて停止するのか、デバッガーがどのような頻度で停止するのか、 何回目のブレークポイント検出でデバッガーがもう停止しなくなるのかをデバッガーに指示します。

以下のパラメーターが、ブレークポイント頻度を 設定するために使用されます。

  • 開始: 何回目のブレークポイント検出でデバッガーを初めて 停止させるのかを入力します。例えば、最初の 5 回のブレークポイント検出をデバッガーにスキップさせる場合、「6」を入力します。
  • 終了: デバッガーを停止させる最後のブレークポイントの出現回数を 入力します。例えば、ブレークポイントを 20 回検出した後に、デバッガーにそれ以降のブレークポイントを無視させるようにするには、 「20」を入力します。 ブレークポイントで常にデバッガーを停止させるには、「無限大」を入力します。
  • 間隔: このブレークポイントでデバッガーを 停止させる頻度を入力します。例えば、 4 回に 1 回だけデバッガーを停止させるには、「4」を入力します。
このパラメーターは、すべてのタイプのブレークポイントでサポートされます。
このフィールドに式を入力することができます。このフィールドに指定した条件が真の時にのみ (ゼロ以外の値は真と見なされる)、プログラムの実行が ブレークポイントで停止します。

例えば、C++ プログラムをデバッグする場合、 次の式を入力できます。

(i==1) || (j==k) && (k!=5)

条件式 として使用できるのは、ブレークポイントの場所の言語での有効な式であって、 評価結果が数値になり、副次作用がなく、 関数を呼び出したりしない任意の式です。これは、C および C++ の場合、 すべての代入演算子、増分演算子と減分演算子 (++--) が 許可されないことを意味します。

重要: 条件を満足していないブレークポイントで アプリケーションが停止しているようには見えなくても、 デバッガーは、条件を評価している間はアプリケーションを一時的に中断します。ほとんどの 目的に対して、この短い一時停止は重要ではありません。しかし、マルチスレッド・アプリケーションでは、 この一時停止が原因で、スレッドがディスパッチされる順序をオペレーティング・システムが変更する 可能性があります。
注:
  • COBOL for AIX プログラムのデバッグ時には、以下の演算子を使用した比較条件のみがサポートされます。

    ><=>=<=NOT >NOT <NOT =

  • 左側のオペランドは変数でなければならず、右側のオペランドは定数でなければなりません。例えば、var1 > 5 は有効ですが、5 < var1var1 > var2 は無効です。
  • 16 進定数は、POINTER 変数でのみ許可されます。
  • 非数値と外部浮動小数点変数は、非数値リテラルと比較する必要があります。
  • ゾーン 10 進数変数は、数値定数と比較する必要があります。
  • 複合条件とグループ比較は許可されません。
  • 比較は、プログラム内での COLLSEQ コンパイル・オプションまたは照合シーケンスの指定に関係なく、ロケール・ベースで行われます。
  • PL/I for AIX プログラムをデバッグする場合は、 『サポートされる PL/I 式』を参照してください。
行、エントリー、およびアドレス

フィードバック