ブレークポイントおよび監視ポイントの使用

ブレークポイントは、アプリケーションの実行が一時停止するコード行またはプログラム行を示します。アプリケーションが一時停止したら、その特定のステップでデータ項目の値を確認および変更することができます。

同様に、監視ポイントは、監視するデータ項目に関連付けられたメモリ領域を示すタイプのブレークポイントであり、そのメモリが更新されるとアプリケーションを一時停止します。このようなタイプのブレークポイントは、特定のコード行にではなく、データ項目に設定されます。このタイプのブレークポイントは、JVM COBOL アプリケーションではサポートされていません。

両方のタイプのブレークポイントに条件を追加できます。条件は、コード化された式にすることができます。たとえば、my-variable に設定された条件付き監視ポイントで、式を my-variable > your-variable とすると、my-variable のメモリが更新されて my-variable の値が your-variable より大きかった場合にのみ、実行が中断されます。条件はヒット カウントにもなります。たとえば、プログラムの 15 行目が条件付きブレークポイントで、hit count > 2 に設定されると、その行の 3 回目の実行が行われようとした場合にのみ、実行が中断されます。リバース デバッグを行っている場合、後方に進めてもヒット カウントは増加します。両方のタイプの条件を組み合わせることもできます。実行を中断するには両方の条件が満たされる必要があります。

[Breakpoints] プロパティ ビューには、バインドされたすべてのブレークポイントおよび監視ポイントの詳細が表示されます。また、このビューではブレークポイントおよび監視ポイントを設定できます。

ブレークポイントおよび監視ポイントを設定するには、次の操作を実行します。

ブレークポイントが設定されているときは アイコンが、監視ポイントが設定されているときは アイコンがマーカー バーに表示されます。ブレークポイントまたは監視ポイントがプログラムにバインドされると、これらのアイコンにチェック マークが追加されます。プログラム ブレークポイントは、 アイコンで示されます。

注: Eclipse におけるブレークポイントは (他の Micro Focus 製品とは異なり) プログラムではなくソース ファイルに設定されます。つまり、ソース ファイルを複数のプログラムで使用している場合や同じプログラムで複数回使用している場合は、実際には単一のブレークポイントが何度も検出されることになります。次に例を示します。

Main.cbl:

Procedure division.
       Copy "Code.cpy".
       …
       Copy "Code.cpy".

Code.cpy:

       Add 1 to count		// set breakpoint here

デバッグの開始前にブレークポイントが設定されている場合や、コピーブックを使用するプログラムがアクティブになっていない場合は、ブレークポイントが保留されます。つまり、そのブレークポイントは実際のコード位置に解決されていません。デバッグが開始されるか、新しいプログラムが呼び出されると、デバッガーは保留中のすべてのブレークポイントを解決して実際のコード位置にバインドしようとします。

上記の例では、メインの実行可能ファイルがデバッガーによってロードされると、デバッガーは単一の (保留中の) ブレークポイントを 2 つの実際の (バインドされた) ブレークポイントにバインドします。それらのブレークポイントは、プラス記号付きのブレークポイント アイコン でエディターの余白および [Breakpoints] ビューの両方に表示されます。