付録B. Debug Tool によるソース、リスト、または 分離デバッグ・ファイル の検索方法

Debug Tool は、次のソースを検索して、コンパイル単位 (CU) に関する必要な情報 (デバッグ情報と呼ぶ) を取得します。

これらのどの場合にも、各 CU、ロード・モジュール、または DLL にデフォルトのデータ・セット名が関連付けられています。デフォルト名の生成方法は、使用されるソース言語とコンパイラーに応じて異なります。各コンパイラーがデフォルト名を生成する方法については、そのコンパイラーのプログラミング・ガイドまたはユーザーズ・ガイドを参照してください。

Debug Tool は、ソース・データまたはリスト・データ、分離デバッグ・ファイル・データ、あるいは EQALANGX データを、以下のいずれかのソースから取得します。

C および C++ の CU の場合、Debug Tool はソース・データと分離デバッグ・ファイル・データを、その CU の作成方法と EQAOPTS MDBG コマンドに指定した値に応じて、異なるソースから取得します。12以下の条件のもとで作成およびデバッグされた CU の場合、Debug Tool はソース・データをソース・ファイルから取得し、分離デバッグ・ファイル・データを .dbg ファイルから取得します。

Debug Tool は、次のいずれかのソースからソース・ファイルを取得します。

Debug Tool は、次のいずれかのソースから .dbg ファイルを取得します。

以下の条件のもとで作成およびデバッグされた C および C++ の CU の場合、Debug Tool はソース・データと 分離デバッグ・ファイル・データを .mdbg ファイルから取得します。

Debug Tool は、次のいずれかのソースから .mdbg ファイルを取得します。

各ファイル・タイプ (ソース、リスト、分離デバッグ・ファイル、.dbg、または .mdbg) ごとに、Debug Tool は異なる順序でソース全体を検索します。この章の以降のトピックでは、その順序について説明します。

ご使用の環境で EQAUEDAT ユーザー出口を使用している場合、Debug Tool が目的のファイルを見つけた場合に、このユーザー出口で指定されている名前が優先されます。

.dbg および .mdbg ファイルの場合、Debug Tool は有効な .dbg または .mdbg ファイルを見つけるまでソースを検索しません。

Debug Tool によるソースおよびリスト・ファイルの検索方法

Debug Tool は、CU のソースまたはリスト・ファイルを、その CU に関する情報の表示が 必要となるたびに読み取ります。CU のデバッグ中に、ファイルが読み取られたデータ・セットは 変わる可能性があります。Debug Tool は、ソースまたはリスト・ファイルの読み取りが必要となるたびに、 次の順序でデータ・セットを検索します。

  1. SET SOURCE コマンド
  2. SET DEFAULT LISTINGS コマンド。EQAUEDAT ユーザー出口が実装されていて、EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
  3. 存在する場合、EQADEBUG DD ステートメント
  4. デフォルト・データ・セット名。EQAUEDAT ユーザー出口が実装されていて、EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。

Debug Tool が COBOL と PL/I の分離デバッグ・ファイルを探す方法

Debug Tool は、COBOL と PL/I の分離デバッグ・ファイルから 2 回以上読み取る場合がありますが、 常に同じデータ・セットから分離デバッグ・ファイルを読み取ります。 Debug Tool が有効な分離デバッグ・ファイルを見つけた後、Debug Tool に別の分離デバッグ・ファイルを 指示することはできません。CU が最初に出現したとき、Debug Tool は次の順序で分離デバッグ・ファイルを検索します。

  1. SET SOURCE コマンド
  2. デフォルト・データ・セット名。EQAUEDAT ユーザー出口が実装されていて、EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
  3. SET DEFAULT LISTINGS コマンド。EQAUEDAT ユーザー出口が実装されていて、EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
  4. 存在する場合、EQADEBUG DD ステートメント

SET SOURCE コマンドは、CU 名が CU として出現した後、他のどのロケーションでも分離デバッグ・ファイルが見つからない場合にのみ入力できます。SET DEFAULT LISTINGS コマンドは、その CU 名が CU として出現する前であればいつでも入力でき、また、可能性がある他のロケーションに分離デバッグ・ファイルが見つからない場合には、 その後で入力できます。

Debug Tool による EQALANGX ファイルの検索方法

EQALANGX ファイル (アセンブラー・プログラムまたは非言語環境プログラムの COBOL プログラムのデバッグ情報を含む) は、1 回を超えて読み取られる場合がありますが、常に同じデータ・セットから読み取られます。Debug Tool が有効な EQALANGX ファイルを見つけた後、Debug Tool に別の EQALANGX ファイルを 指示することはできません。LOADDEBUGDATA (LDD) コマンド (即時に実行されるか、または指定された CU が Debug Tool に認識されたときに実行されます) を入力した後、Debug Tool は、以下の順序で EQALANGX ファイルを探します。

  1. SET SOURCE コマンド
  2. 以前にロードされた EQALANGX ファイル。プログラムの名前と長さに一致する CSECT が含まれています。
  3. デフォルト・データ・セット名。EQAUEDAT ユーザー出口が実装されていて、EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
  4. SET DEFAULT LISTINGS コマンド。EQAUEDAT ユーザー出口が実装されていて、EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
  5. EQADEBUG DD ステートメント

以下のいずれの状態においても、SET SOURCE コマンドを入力することができます。

SET DEFAULT LISTINGS コマンドは、LDD コマンドを入力する前であればいつでも、または、EQALANGX ファイルが LDD コマンドによって検出されない場合、LDD コマンドの入力後に入力できます。

Debug Tool による C/C++ ソース・ファイルおよび .dbg ファイルの検索方法

DEBUG コンパイラー・オプションの FORMAT(DWARF) および FILE サブオプションを使用してコンパイルし、EQAOPTS MDBG コマンドに NO を指定する場合15、Debug Tool はソース・ファイルと .dbg ファイルを必要とします。次のリストは、Debug Tool がこれらのファイルを検索する方法を示しています。

DEBUG コンパイラー・オプション、dbgld コマンド、および CDADBGLD ユーティリティーについて詳しくは、「z/OS XL C/C++ ユーザーズ・ガイド」を参照してください。

Debug Tool による C/C++ .mdbg ファイルの検索方法

以下の条件が該当する場合、Debug Tool はモジュール・マップ (.mdbg) ファイルからデバッグ情報とソースを取得することができます。

dbgld コマンドを -c オプションと一緒に使用するか、CDADBGLD ユーティリティーを CAPSRC オプションと一緒に使用すると、すべての .dbg ファイルと同様に、単一のロード・モジュールまたは DLL を形成するプログラムに属するソース・ファイルが 1 つのモジュール・マップ・ファイル (.mdbg ファイル) 内に保存され (取り込まれ) ます。.mdbg ファイルは、デバッグするロード・モジュールまたは DLL の取り込み済みのソースを含めて作成します。こうして作成した .mdbg ファイルを使用すると、ロード・モジュールまたは DLL のデバッグが簡単にできるためです。 例えば、ロード・モジュールが 10 個のプログラムで構成されている場合にモジュール・マップ・ファイルを作成しないと、10 個の .dbg ファイルと 10 個のソース・ファイルの追跡が必要になります。 そのロード・モジュール用のモジュール・マップ・ファイルを作成すると、1 つの .mdbg ファイルを追跡するだけで済みます。

Debug Tool は .mdbg ファイルを複数回読み取る場合がありますが、常に同じデータ・セットからこのファイルを読み取ります。 Debug Tool がこのファイルを見つけて、デバッグ対象のロード・モジュールによってその内容を検証した後は、Debug Tool をリダイレクトして別のファイルを検索することはできません。Debug Tool は、以下のコマンド、ユーザー出口、または環境変数からの入力に基づいて、.mdbg ファイルをここに示す順序で検索します。

  1. 機能コード 37 を指定する EQAUEDAT ユーザー出口。
  2. EQAUEDAT ユーザー出口を作成しない場合、またはこのユーザー出口によってそのファイルを検出できない場合は、デフォルトのデータ・セット名である userid.mdbg(load_module_or_DLL_name)、あるいは UNIX システム・サービスの場合は ./load_module_or_DLL_name.mdbg

Debug Tool は .mdbg ファイルを見つけられない場合、以下のコマンド、DD ステートメント、または環境変数からの入力に基づいて、.mdbg ファイルをここに示す順序で検索します。

  1. SET MDBG コマンド
  2. SET DEFAULT MDBG コマンド
  3. EQAMDBG DD 名
  4. EQA_MDBG_PATH 環境変数

DEBUG コンパイラー・オプション、dbgld コマンド、および CDADBGLD ユーティリティーについて詳しくは、「z/OS XL C/C++ ユーザーズ・ガイド」を参照してください。


10.
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。これにより、EQAOPTS MDBG コマンドのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
11.
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。これにより、EQAOPTS MDBG コマンドのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
12.
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。これにより、EQAOPTS MDBG コマンドのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
13.
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。これにより、EQAOPTS MDBG コマンドのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
14.
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。これにより、EQAOPTS MDBG コマンドのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
15.
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。これにより、EQAOPTS MDBG コマンドのすべての設定 (デフォルト設定を含む) がオーバーライドされます。