コンパイラー・リストまたはサイド・ファイルの検索

Fault Analyzer は、以下のソース候補のうち、最初に一致したコンパイラー・リストまたはサイド・ファイルを選択します。

  1. TEST オプション・データ:
    • プログラムが TEST オプション (COBOL または Enterprise PL/I の TEST(SEPARATE) 以外) を指定してコンパイルされた場合、一時 Fault Analyzer サイド・ファイルは、ロード・モジュールに含まれているデバッグ情報から生成されます。
    • COBOL V4 または Enterprise PL/I プログラムが TEST(SEPARATE) を指定してコンパイルされた場合、関連する SYSDEBUG サイド・ファイル・データ・セット名は、コンパイラーによって作成されてロード・モジュールに入れられたデバッグ情報から取得されます。

      推奨される言語依存サブオプションについては、TEST オプションの考慮事項を参照してください。

    • TEST(SEPARATE) を指定してコンパイルされた COBOL V4 プログラムの場合、SYSDEBUG サイド・ファイル・データ・セット名が、オプションの COBOL IGZIUXB 出口への入力として使用されます。この出口は、異なるサイド・ファイル・データ・セット名を返すことがあります。
    • COBOL V6 プログラムが TEST(SEPARATE) を指定してコンパイルされ、DSNAME サブオプションが指定されている場合、SYSDEBUG サイド・ファイル・データ・セット名はプログラム・オブジェクトに保管されます。それ以外の場合では、SYSDEBUG サイド・ファイル・データ・セット名は IDISYSDB 連結、コンパイラー・リスト読み取りユーザー出口、COBOL IGZIUXB 出口または EQAUEDAT から取得されます。
      注: CICS® では、Fault Analyzer は生成された TCB 内で CICS® コマンド・アクセスを使用せずに実行されるため、バッチ形式の EQAUEDAT が使用されます。
  2. z/OS® Debugger EQAUEDAT 出口 (オプション)。

    EQAUEDAT 出口の詳細については、「IBM®z/OS® Debugger カスタマイズ・ガイド」を参照してください。

    TEST(SEPARATE) を指定してコンパイルされた COBOL または Enterprise PL/I プログラムの場合、ロード・モジュールからの SYSDEBUG サイド・ファイル・データ・セット名が、EQAUEDAT 出口への入力として使用されます。

    IDILANGX またはコンパイラー・リストを検索する場合、入力サイド・ファイル名は提供されません。

    この出口は、異なるサイド・ファイル・データ・セット名を返すことがあります。

    注: CICS® では、Fault Analyzer は生成された TCB 内で CICS® コマンド・アクセスを使用せずに実行されるため、バッチ形式の EQAUEDAT が使用されます。
  3. COBOL または Enterprise PL/I プログラムの場合は、IDISYSDB DDname によって提供される SYSDEBUG データ・セットが検索されます。XL C/C++ プログラムの場合、IDISYSDB DDname によって提供される MDBG データ・セットが検索されます。データ・セットは個別に検索されます。つまり論理連結として扱われません。
  4. Fault Analyzer サイド・ファイル:
    1. Compiler Listing Read サイド・ファイルの要求によって呼び出されたFault Analyzerユーザー出口。
    2. Fault Analyzer DDname によって提供された IDILANGX のサイド・ファイル・データ・セットが検索されます。データ・セットは個別に検索されます。つまり論理連結として扱われません。
  5. コンパイラー・リスト:
    1. コンパイラー・リスト (またはアセンブラー SYSADATA ファイル) の要求によって呼び出されたCompiler Listing Readユーザー出口。
    2. 適切な DDname によって提供される言語特有のコンパイラー・リスト・データ・セットが検索されます (例えば、IDILCOB など)。データ・セットは個別に検索されます。つまり論理連結として扱われません。
コンパイラー・リストまたはサイド・ファイルが、プログラムをマップするために Fault Analyzer によって使用されるのに適しているかどうかの判断は、以下の事項によって決まります。
  • NOTEST コンパイラー・オプションが使用される場合
    Fault Analyzer がプログラムのコンパイラー・リストまたは LANGX サイド・ファイルを検出すると、使用するプログラミング言語に応じた多くのテストが実行されて、ファイルがロード・モジュールに一致することが確認されます。
    • すべての言語

      Fault Analyzer はコンパイラー出力のアセンブラー・リスト・セクションから、 最後のいくつかのアセンブラー命令を抽出し、それらをロード・モジュールと 比較します。これらのアセンブラー命令は、リストに従ってロード・ モジュール内の正しいオフセットにある必要があります。これらの命令がロード・モジュール内の正しいオフセットで見つからない場合は、この検査が失敗し、コンパイラー・リストまたはサイド・ファイルが使用されなくなり、ソース・レベルの情報は提供されなくなります。

    • COBOL 特有のテスト (OS/VS COBOL を除く)
      COBOL の場合は、追加の 4 つの長さ値がリストから抽出されます。これらは、コンパイラー・リストの以下の 4 行で見つかった、TGT 長、WORKING-STORAGE 長、Data Division ステートメント数、および Procedure Division ステートメント数です。
      TGT      WILL BE ALLOCATED FOR nnnnnnnn BYTES
      WRK-STOR WILL BE ALLOCATED FOR nnnnnnnn BYTES
      Data Division statements = nnnnnn
      Procedure Division statements = nnnnnn
      これらの 4 つの値は、ロード・モジュールで見つかった値と比較され、一致しない場合は、ソース・レベルの情報の提供にコンパイラー・リストまたはサイド・ファイルは使用されません。
  • TEST コンパイラー・オプションが使用される場合

    COBOL SYSDEBUG ファイルの場合、日時の比較は「シグニチャー」検査に置き換えられます。これにより、変更のないプログラムの再コンパイルが可能になります。シグニチャー検査が不合格だった場合でも、コンパイラー・リスト・ミスマッチ・ポップアップ画面の指示に従うことで、対話式再分析では SYSDEBUG ファイルを引き続き使用できます。

    COBOL プログラム (Enterprise COBOL V4 までを含むが、VS COBOL II は除外) の場合、コンパイラー・リスト・データ・セット名は、コンパイラーによって格納されたロード・モジュール内のデバッグ情報から取得されます。この場合、リスト内の日時が、ロード・モジュール内のコンパイル日時と照合されます。コンパイラー・リスト・ファイルが移動された (または VS COBOL II である) 場合、コンパイラー・リストは IDILCOB DD、EQAUEDAT、またはコンパイラー・リスト読み取りユーザー出口を使用して指定できます。

    TEST(NOSOURCE) または NOTEST(DWARF) でコンパイルされた Enterprise COBOL V5 (またはそれ以降) のプログラムの場合、ソース情報はプログラム・オブジェクトに含まれず、コンパイラー・リスト・データ・セット名は DWARF で使用できません。ただし、これらのプログラムのコンパイラー・リストは、IDILCOB DD、EQAUEDAT、またはコンパイラー・リスト読み取りユーザー出口を使用して指定できます。

    Enterprise PL/I SYSDEBUG ファイルの場合、日時の比較は、一連の「保全性」検査に置き換えられます。これにより、SYSDEBUG ファイルがストレージ内のロード・モジュールで使用可能か判断されます。いずれかの保全性検査が失敗した場合、SYSDEBUG ファイルは使用できません。

データを使用する前に Fault Analyzer がこれらの検査を実行する理由は、コンパイラー・リストまたはサイド・ファイルが正しくないと、誤ったレポート情報が生成される可能性があるためです。

対話式障害再分析時に COBOL、PL/I、C/C++、またはアセンブラー・プログラムに適合したコンパイラー・リストまたはサイド・ファイルが検出されなかった場合、Fault Analyzer は、オプションとしてコンパイラー・リスト、Fault Analyzer サイド・ファイル、または COBOL SYSDEBUG サイド・ファイルの場所を指定するようにユーザーに求めます。このプロンプトの詳細については、コンパイラー・リストまたはサイド・ファイルのプロンプトを参照してください。