COBOL プログラムのデバッグ方法

  1. 現在アクティブなビルド構成で、デバッグ用にプロジェクトをコンパイルしていることを確認します。
  2. [Project > Build Automatically] がオンになっていてプログラムが既にコンパイルされている場合を除き、[Project > Build Project] をクリックしてプログラムをコンパイルします。
  3. [Run > Debug Configurations] をクリックして、デバッグ構成を選択または作成します。使用できる COBOL デバッグ構成のタイプは、デバッグ・セッションのタイプごとに異なります。デバッグ・セッションでは、各タイプの構成は異なるオプションを提供し、異なる仕様を必要とします。ビルド構成同様、複数のデバッグ構成を設定し、そのデバッグ構成を入れ替えることができます。これらの設定は、プロジェクトのランタイム設定をオーバーライドします。
  4. [Debug] をクリックします。
  5. [Run] メニューのオプションを使用して、プログラムのステップ実行、ブレーク・ポイントでの停止、データ項目値の確認などを行います。
    ヒント: 次の方法を使用すると、プログラムのデバッグに役立ちます。
    キーボード・ショートカット
    • F5 = 現在のコード行で次の文にステップインし、実行を一時停止します。 のクリックと同等。
    • F6 = 次の文に入らずに現在実行中のコード行で次の文をステップオーバし、実行を一時停止します。メソッドは正常に実行されます。 のクリックと同等。
    • F7 = ステップインしたメソッドまたはパラグラフから戻り、実行を一時停止します。メソッド内の残りのコードは正常に実行されます。 のクリックと同等。
    • F8 = 一時停止したコード行からプログラムの実行を再開します。 のクリックと同等。
    また、[Drop to Frame] ボタン をクリックして、現在のメソッドの開始位置に移動することもできます。
    データ項目の値を確認するには、次の操作を行います。
    データ項目上でマウス・ポインタを保持すると、現在値がテキスト・ホバーとして表示されます。現在の実行行と前の行に含まれているすべての変数の値は、[Variables View] (通常は、IDE の右上に表示される) に表示されます。
  6. デバッグを停止するには、[Run > Terminate] をクリックします。
  7. [Debug] パースペクティブから [COBOL] パースペクティブに戻るには、Eclipse ウィンドウの右上にある [COBOL] をクリックします。

ブレーク・ポイントと監視ポイントの使用

ブレーク・ポイントはコードまたはプログラムの行を示しており、アプリケーションの実行はその行で一時停止します。監視ポイントはデータ項目を示しており、そのデータ項目の値が変化するとアプリケーションの実行が一時停止します。アプリケーションが一時停止したら、その特定のステップでデータ項目の値を確認および変更することができます。[Breakpoints] プロパティ・ビューには、バインドされたすべてのブレーク・ポイントと監視ポイントの詳細が表示されます。また、このビューではブレーク・ポイントと監視ポイントを設定できます。

ブレーク・ポイントと監視ポイントを設定するには、次のいずれかの操作を行います。

  • 実行可能ソース・コードの行の左にあるマーカ・バー (ブレーク・ポイントの場合)、手続き部の見出しの左にあるマーカ・バー (プログラム・ブレーク・ポイントの場合)、または作業記憶域項目の左にあるマーカ・バー (監視ポイントの場合) をダブルクリック
  • マーカ・バーを右クリックし、コンテキスト・メニューから [Toggle Breakpoint] または [Toggle Watchpoint] を選択
  • [Outline] ビューで段落名、セクション名、またはデータ項目名を右クリックし、コンテキスト・メニューから [Toggle Breakpoint] または [Toggle Watchpoint] を選択

ブレーク・ポイントを設定すると、マーカ・バーに アイコンが表示されます。プログラム・ブレーク・ポイントを設定すると、手続き部の見出しの横に アイコンが表示されます。監視ポイントを設定すると、 アイコンが表示されます。ブレーク・ポイント または監視ポイント がプログラムにバインドされると、これらのアイコンにチェック・マークが追加されます。

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

Main.cbl:

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

Code.cpy:

       Add 1 to count		// set breakpoint here

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

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