ブレークポイントは、アプリケーションの実行が一時停止するコード行、プログラム、またはメソッドを示します。アプリケーションが一時停止したら、その特定のステップでデータ項目の値を確認および変更できます。
Eclipse におけるブレークポイントは (他の Micro Focus 製品とは異なり) プログラムではなくソース ファイルに設定されます。つまり、ソース ファイルを複数のプログラムで使用している場合や同じプログラムで複数回使用している場合は、実際には単一のブレークポイントが何度も検出されることになります。
たとえば、次のプログラム Main.cbl について考えてみましょう。
Procedure division. Copy "Code.cpy". … Copy "Code.cpy".
コピーブック Code.cpy には、次のコードがあります。
Add 1 to count // set breakpoint here
デバッグの開始前にブレークポイントが設定されている場合や、コピーブックを使用するプログラムがアクティブになっていない場合は、ブレークポイントが保留されます。つまり、そのブレークポイントは実際のコード位置に解決されていません。デバッグが開始されるか、新しいプログラムが呼び出されると、デバッガーは保留中のすべてのブレークポイントを解決して実際のコード位置にバインドしようとします。
上記の例では、メインの実行可能ファイルがデバッガーによってロードされると、デバッガーは単一の (保留中の) ブレークポイントを 2 つの実際の (バインドされた) ブレークポイントにバインドします。それらのブレークポイントは、プラス記号付きのブレークポイント
アイコン でエディターの余白および [Breakpoints] ビューの両方に表示されます。
監視ポイントは、データ項目に関連付けられたメモリ領域を監視するタイプのブレークポイントであり、そのメモリが更新されるとアプリケーションは中断されます。このようなタイプのブレークポイントは、特定のコード行にではなく、データ項目に設定します。
次のいずれかの方法で、ブレークポイントおよび監視ポイントを設定できます。
Procedure Division の見出しで上記のいずれかの方法を実行すると、プログラム ブレークポイントを作成できます。同様に、method-id の見出しで実行すると (COBOL JVM のみ)、メソッド ブレークポイントを作成できます。これらのタイプのブレークポイントに到達すると、ヘッダーに続く最初の有効な行で実行が停止します。
エディターが開いていない場合でも、一部のブレークポイントを作成できます。ワークスペースで任意のプログラムのプログラム ブレークポイントを作成できます。これを行うには、[Run > Add Program Breakpoint] をクリックするか、[Breakpoints] ビューの アイコンをクリックして、ファイルの名前を入力します。
ブレークポイントが設定されている場合は アイコンが、監視ポイントが設定されている場合は
アイコンがマーカー バーに表示されます。デバッガーに現在アタッチされているプログラムにブレークポイントまたは監視ポイントがバインドされると、これらのアイコンにチェック マークが付きます。プログラム ブレークポイントは、
アイコンで示されます。
[Breakpoints] ビューには、アクティブな状態か休止状態かを問わず、ワークスペース内のすべてのブレークポイントおよび監視ポイントのリストが表示されます。それぞれのプロパティを表示するには、エントリを右クリックし、[Breakpoint Properties] を選択します。これにより、[Properties...] ダイアログ ボックスが開き、そのブレークポイントまたは監視ポイントの詳細が表示され、必要に応じてその動作を構成できます。
両方のタイプのブレークポイントに条件を追加できます。条件はヒット カウントになります。たとえば、プログラムの 15 行目が条件付きブレークポイントで、hit count > 2 に設定されると、その行の 3 回目の実行が行われようとした場合にのみ、実行が中断されます。リバース デバッグを行っている場合、後方に進めてもヒット カウントは増加します。
ネイティブ COBOL コードでは、条件はコード化された式にすることもできます。たとえば、my-variable に設定された条件付き監視ポイントで、式を my-variable > your-variable とすると、my-variable のメモリが更新されて my-variable の値が your-variable より大きかった場合にのみ、実行が中断されます。両方のタイプの条件を組み合わせることもできます。実行を中断するには両方の条件が満たされる必要があります。
「条件付きのブレークポイントおよび監視ポイントの設定」を参照してください。