これ以降のセクションでは、ビルド記述子および EGL 設定の相互作用について説明します。
デバッガーには、Java と COBOL の 2 つのモードがあります。これらは、 ビルド記述子オプション system によって判別されます。ビルド記述子が使用されていない場合、またはシステム・タイプをデバッグ設定としての DEBUG に設定する場合、モードは Java です。
モードは、EGL ランタイム振る舞いが Java と COBOL 出力によって異なる環境におけるデバッガーの機能を制御します。
ブレークポイントは、 除去されない限り、デバッグ・セッションから次のデバッグ・セッションに渡って記憶されます。
ブレークポイントを、ブランク行またはコメント行に設定することはできません。
EGL デバッガーはワークベンチ内のすべてのプロジェクト内で受信プログラムを検索します。
コードがプログラムに転送されると、 デバッガーはそのプログラム内の最初の文で停止します。
EGL デバッガーはワークベンチ内のすべてのプロジェクト内で受信プログラムを検索します。
コードがプログラムに転送されると、 デバッガーはそのプログラム内の最初の文で停止します。
EGL デバッガーはワークベンチ内のすべてのプロジェクト内で受信プログラムを検索します。
バリデーター関数で step return コマンドを実行する場合、例外が有効になります。その場合、振る舞いは step into コマンドの振る舞いと同一になります。つまり、主に EGL デバッガーが次の文を実行して休止することを意味します。
例えば、これらの文にブレークポイントを追加できますが、step into コマンドは後続の文に続けて実行されるだけで、他の文は影響を受けません。
最後に、関数で実行されている最後の文に step into または step over のコマンドを実行する (および、その文が return、exit program、または exit stack でない) と、関数にローカルな変数を検討できるように、処理は関数内で自ら休止します。この場合、デバッグ・セッションを継続するには、別のコマンドを実行します。
Java 環境において、テキスト・アプリケーションまたはバッチ・アプリケーションでの使用が意図されたプログラムをデバッグする場合、およびそのプログラムが Java 環境における異なる実行単位で使用が意図されたプログラムに制御を切り替える transfer 文を実行する場合、EGL デバッガーは、受信プログラムに割り当てられたビルド記述子を使用します。ビルド記述子の選択項目は、 以前に説明した規則に基づきます。
デバッガーが EGL ソース・コードを実行する場合、呼び出し側から step into コマンドを実行することによって、そのプログラム内で文を実行できます。ただし、デバッガーが生成済みコードを呼び出す場合、デバッガーはプログラム全体を実行して、step into コマンドは step over コマンドのように機能します。
システム・タイプの値は、sysVar.systemType で使用できます。また、2 番目の値は、VisualAge Generator との開発時間互換性を要求した場合に、VGLib.getVAGSysType で使用できます。
システム関数 VGLib.getVAGSysType は、VisualAge Generator に相当する sysLib.systemType の値を戻します。詳細については、『VGLib.getVAGSysType』のテーブルを参照してください。
EGL デバッガーは、Eclipse ワークベンチとの通信を確立するためにポートを使用します。デフォルト・ポート番号は 8345 です。別のアプリケーションがこのポートを使用している場合やファイアウォールによってポートがブロックされている場合は、『EGL デバッガーの設定の変更』の説明に従い別の値を設定してください。
部分的にデプロイされたアプリケーションで作業する場合は、EGL 生成 Java プログラムまたはラッパーから EGL デバッガーを呼び出して、EGL デバッガーを使用することができます。 プログラムでは、リンケージ・オプション・パーツの callLink エレメントに関連付ける call 文が必要です。同様に、ラッパーを callLink エレメントに関連付ける必要があります。いずれの場合も、エレメントはプロパティー removeComType を DEBUG として指定する必要があります。
呼び出しが発生する前に、 Eclipse で実行するリスナー・プログラムを開始する必要があります。リスナーを開始するには、構成可能な設定が 1 つ (ポート番号)しかない EGL リスナー起動構成を使用します。 デフォルト・ポート番号は 8346 です。
同時に複数の EGL リスナーを実行する場合、それぞれの EGL リスナーが独自のポートを必要とするので、ポートを指定する必要があります。別のアプリケーションがポート 8346 を使用している場合やファイアウォールによってポート 8346 の使用が禁止されている場合も、ポートを指定する必要があります。
リスナー・ポートは、EGL 設定として指定された EGL デバッガー・ポートと異なります。
if (systemType is zoscics) transferName = "FQ3R"; else // when systemType is debug transferName = "myProgram"; end transfer to transaction transferName;
if (systemType not debug) sysLib.commit(); end
-Dcom.ibm.debug.egl.port=portNumber