付録B. Debug Tool によるソース、リスト、または分離デバッグ・ファイルの検索方法
Debug Tool は、次のソースを検索して、コンパイル単位 (CU) に関する
必要な情報 (デバッグ情報と呼ぶ) を取得します。
- デバッグ情報はロード・モジュールに保管される場合があります。
Debug Tool はこの情報をソース・ファイルまたはリスト・ファイルと一緒に使用して、ソース・コードを画面に表示します。
- TEST コンパイラー・オプションの SEPARATE サブオプションでコンパイルされた COBOL と PL/I の CU の場合、Debug Tool は、
デバッグ情報と、画面上にソース・コードを表示するのに必要な情報の両方が入った
別のファイル (分離デバッグ・ファイルと呼ぶ) に保管された情報を使用します。
- 以下の条件のもとで作成およびデバッグされた C および C++ CU の場合、
Debug Tool は .dbg ファイルに保管されているデバッグ情報をソース・ファイルと一緒に使用して、コードを画面に表示します。
- DEBUG コンパイラー・オプションの FORMAT(DWARF) サブオプションによってコンパイルされた。
- EQAOPTS オプション・ファイル内で EQAXOPT MDBG,NO オプションを指定した、またはデフォルトとして指定した。9
- 以下の条件のもとで作成およびデバッグされた C および C++ CU の場合、
Debug Tool は .mdbg ファイルに保管されているデバッグ情報およびソース・コードを使用して、画面にソース・コードを表示します。
- DEBUG コンパイラー・オプションの FORMAT(DWARF) サブオプションによってコンパイルされた。
- z/OS® XL C/C++ バージョン 1.10 以降によってコンパイルされた。
- dbgld コマンドの -c オプションまたは CDADBGLD ユーティリティーの CAPSRC オプションを使用して、ロード・モジュールまたは DLL の保存済み (取り込み済み) ソースを含めて .mdbg ファイルを作成した。
- EQAOPTS オプション・ファイル内で EQAXOPT MDBG,YES オプションを指定した
(この場合、Debug Tool が .mdbg ファイル内で .dbg ファイルおよびソース・ファイルを検索する必要があります)。10
- アセンブラー CU および非言語環境プログラムの COBOL CU の場合、Debug Tool は、
デバッグ情報と、画面上にソース・コードを表示するのに必要な情報の両方が入った別のファイル (EQALANGX ファイルと呼ぶ) に保管された情報を使用します。
これらのどの場合にも、各 CU、ロード・モジュール、または DLL にデフォルトのデータ・セット名が関連付けられています。
デフォルト名の生成方法は、使用されるソース言語とコンパイラーに応じて異なります。
各コンパイラーがデフォルト名を生成する方法については、そのコンパイラーのプログラミング・ガイドまたはユーザーズ・ガイドを参照してください。
Debug Tool は、ソース・データまたはリスト・データ、分離デバッグ・ファイル・データ、あるいは EQALANGX データを、以下のいずれかのソースから取得します。
- デフォルト・データ・セット名
- SET SOURCE コマンド
- SET DEFAULT LISTINGS コマンド
- EQADEBUG DD ステートメント
C および C++ の CU の場合、Debug Tool はソース・データと分離デバッグ・ファイル・データを、その CU の作成方法と EQAOPTS オプション・ファイルの MDBG オプションの設定に応じて、
異なるソースから取得します。11
以下の条件のもとで作成およびデバッグされた CU の場合、Debug Tool はソース・データをソース・ファイルから取得し、
分離デバッグ・ファイル・データを .dbg ファイルから取得します。
- DEBUG コンパイラー・オプションの FORMAT(DWARF) サブオプションによってコンパイルされた。
- EQAOPTS オプション・ファイル内で EQAXOPT MDBG,NO オプションを指定した。12
Debug Tool は、次のいずれかのソースからソース・ファイルを取得します。
- デフォルト・データ・セット名
- SET SOURCE コマンド
- SET DEFAULT LISTINGS コマンド
- EQAUEDAT ユーザー出口 (機能コード 3 を指定)
- EQADEBUG DD 名
- EQA_SRC_PATH 環境変数
Debug Tool は、次のいずれかのソースから .dbg ファイルを取得します。
- デフォルト・データ・セット名
- EQADBG DD ステートメント
- EQAUEDAT ユーザー出口 (機能コード 35 を指定)
- EQADBG DD 名
- EQA_DBG_PATH 環境変数
- SET DEFAULT DBG コマンド
以下の条件のもとで作成およびデバッグされた C および C++ の CU の場合、
Debug Tool はソース・データと分離デバッグ・ファイル・データを .mdbg ファイルから取得します。
- DEBUG コンパイラー・オプションの FORMAT(DWARF) サブオプションによってコンパイルされた。
- z/OS XL C/C++ バージョン 1.10 以降によってコンパイルされた。
- dbgld コマンドの -c オプションまたは CDADBGLD ユーティリティーの CAPSRC オプションを使用して、ロード・モジュールまたは DLL の保存済み (取り込み済み) ソースを含めて .mdbg ファイルを作成した。
- EQAOPTS オプション・ファイル内で EQAXOPT MDBG,YES オプションを指定した
(この場合、Debug Tool が .mdbg ファイル内で .dbg ファイルを検索する必要があります)。13
Debug Tool は、次のいずれかのソースから .mdbg ファイルを取得します。
- デフォルト・データ・セット名
- SET MDBG コマンド
- SET DEFAULT MDBG コマンド
- EQAUEDAT ユーザー出口 (機能コード 37 を指定)
- EQAMDBG DD 名
- EQA_MDBG_PATH 環境変数
各ファイル・タイプ (ソース、リスト、分離デバッグ・ファイル、.dbg、または .mdbg) ごとに、Debug Tool は異なる順序でソース全体を検索します。
この章の以降のトピックでは、その順序について説明します。
ご使用の環境で EQAUEDAT ユーザー出口を使用している場合、Debug Tool が目的のファイルを見つけた場合に、このユーザー出口で指定されている名前が優先されます。
.dbg および .mdbg ファイルの場合、Debug Tool は有効な .dbg または .mdbg ファイルを見つけるまでソースを検索しません。
Debug Tool によるソースおよびリスト・ファイルの検索方法
Debug Tool は、CU のソースまたはリスト・ファイルを、その CU に関する情報の表示が
必要となるたびに読み取ります。CU のデバッグ中に、ファイルが読み取られたデータ・セットは
変わる可能性があります。Debug Tool は、ソースまたはリスト・ファイルの読み取りが必要となるたびに、
次の順序でデータ・セットを検索します。
- SET SOURCE コマンド
- SET DEFAULT LISTINGS コマンド。EQAUEDAT ユーザー出口が実装されていて、
EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
- 存在する場合、EQADEBUG DD ステートメント
- デフォルト・データ・セット名。EQAUEDAT ユーザー出口が実装されていて、
EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
Debug Tool が COBOL と PL/I の分離デバッグ・ファイルを探す方法
Debug Tool は、COBOL と PL/I の分離デバッグ・ファイルから 2 回以上読み取る場合がありますが、
常に同じデータ・セットから分離デバッグ・ファイルを読み取ります。
Debug Tool が有効な分離デバッグ・ファイルを見つけた後、Debug Tool に別の分離デバッグ・ファイルを
指示することはできません。CU が最初に出現したとき、Debug Tool は次の順序で分離デバッグ・ファイルを検索します。
- SET SOURCE コマンド
- デフォルト・データ・セット名。EQAUEDAT ユーザー出口が実装されていて、
EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
- SET DEFAULT LISTINGS コマンド。EQAUEDAT ユーザー出口が実装されていて、
EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
- 存在する場合、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 ファイルを探します。
- SET SOURCE コマンド
- 以前にロードされた EQALANGX ファイル。プログラムの名前と長さに一致する CSECT が含まれています。
- デフォルト・データ・セット名。EQAUEDAT ユーザー出口が実装されていて、
EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
- SET DEFAULT LISTINGS コマンド。EQAUEDAT ユーザー出口が実装されていて、
EQADEBUG DD ステートメントが指定されていない場合、データ・セット名は EQAUEDAT ユーザー出口によって変更されていることがあります。
- EQADEBUG DD ステートメント
以下のいずれの状態においても、SET SOURCE コマンドを入力することができます。
- CU 名が逆アセンブリー CU として現れた後の任意の時点。
- LDD コマンドが入力されるときに CU が認識されていたが、その後で
Debug Tool が EQALANGX ファイルを検出しない場合。
- LDD コマンドが入力されるときに CU が Debug Tool に認識されていないが、
その後、CU が Debug Tool に認識された後で Debug Tool が LDD を実行した場合。
SET DEFAULT LISTINGS コマンドは、LDD コマンドを入力する前であればいつでも、
または、EQALANGX ファイルが LDD コマンドによって検出されない場合、LDD コマンドの入力後に入力できます。
Debug Tool による C/C++ ソース・ファイルおよび .dbg ファイルの検索方法
DEBUG コンパイラー・オプションの FORMAT(DWARF) および FILE サブオプションを使用してコンパイルし、
EQAOPTS オプション・ファイル内で EQAXOPT MDBG,NO オプションを指定する場合14、Debug Tool は
ソース・ファイルと .dbg ファイルを必要とします。次のリストは、Debug Tool がこれらのファイルを検索する方法を示しています。
- Debug Tool は、ソース・コードを表示する必要が生じるたびに、CU のソース・ファイルを読み取ります。
Debug Tool は、コンパイラーがロード・モジュールまたは DLL に保存した名前を使用してソース・ファイルを検索します。
ソース・ファイルを別の場所に移動すると、Debug Tool は、以下のコマンド、ユーザー出口、または環境変数からの入力に基づいて、ソース・ファイルをここに示す順序で検索します。
- フルスクリーン・モードでの、SET SOURCE コマンド。
- リモート・デバッグ・モードでの、EQA_SRC_PATH 環境変数、またはエディター・ビューから「Change Text File (テキスト・ファイルの変更)」アクションに入力した内容。
- EQADEBUG DD 名
- 機能コード 3 を指定する EQAUEDAT ユーザー出口。EQADEBUG DD 名を指定すると、EQAUEDAT ユーザー出口は実行されません。
- SET DEFAULT LISTINGS コマンド。
- Debug Tool は .dbg ファイルを複数回読み取る場合がありますが、常に同じデータ・セットからこのファイルを読み取ります。
Debug Tool がこのファイルを見つけて、デバッグ対象のロード・モジュールによってその内容を検証した後は、Debug Tool をリダイレクトして別のファイルを検索することはできません。Debug Tool は、コンパイラーがロード・モジュールまたは DLL に保存した名前を使用して .dbg ファイルを検索します。
.dbg ファイルを別の場所に移動すると、Debug Tool は、以下のコマンド、ユーザー出口、または環境変数からの入力に基づいて、.dbg ファイルをここに示す順序で検索します。
- リモート・デバッグ・モードでの、EQA_DBG_PATH 環境変数。
- EQADBG DD 名。
- 機能コード 35 を指定する EQAUEDAT ユーザー出口。EQADBG DD 名を指定すると、EQAUEDAT ユーザー出口は実行されません。
- SET DEFAULT DBG コマンド。
DEBUG コンパイラー・オプション、dbgld コマンド、および CDADBGLD ユーティリティーについて詳しくは、「z/OS XL C/C++ ユーザーズ・ガイド」を参照してください。
Debug Tool による C/C++ .mdbg ファイルの検索方法
以下の条件が該当する場合、Debug Tool はモジュール・マップ (.mdbg) ファイルからデバッグ情報とソースを取得することができます。
- 以下のいずれかの作業を行います。
- ご使用のサイトで、EQAOPTS オプション・ファイル内で EQAXOPT MDBG,YES オプションを指定します。
環境変数をサポートする環境の場合は、環境変数 EQA_USE_MDBG を NO に設定しません。
- ご使用のサイトで、EQAOPTS オプション・ファイル内で EQAXOPT MDBG,NO オプションを指定するかデフォルト設定します。
ただし環境変数をサポートする環境の場合は、環境変数 EQA_USE_MDBG を YES に設定してそのオプションをオーバーライドします。
- プログラムを z/OS XL C/C++ バージョン 1.10 以降でコンパイルした。
dbgld コマンドに -c オプションを指定して使用するか、
CDADBGLD ユーティリティーに CAPSRC オプションを指定して使用すると、
単一のロード・モジュールまたは DLL を形成するプログラムに属するソース・ファイルとすべての .dbg ファイルが
1 つのモジュール・マップ・ファイル (.mdbg ファイル) 内に保存され (取り込まれ) ます。.mdbg ファイルは、デバッグするロード・モジュールまたは DLL の取り込み済みのソースを含めて作成します。こうして作成した .mdbg ファイルを使用すると、ロード・モジュールまたは DLL のデバッグが簡単にできるためです。
例えば、ロード・モジュールが 10 個のプログラムで構成されている場合にモジュール・マップ・ファイルを作成しないと、10 個の .dbg ファイルと 10 個のソース・ファイルの追跡が必要になります。そのロード・モジュール用のモジュール・マップ・ファイルを作成すると、1 つの .mdbg ファイルを追跡するだけで済みます。
Debug Tool は .mdbg ファイルを複数回読み取る場合がありますが、常に同じデータ・セットからこのファイルを読み取ります。
Debug Tool がこのファイルを見つけて、デバッグ対象のロード・モジュールによってその内容を検証した後は、Debug Tool をリダイレクトして別のファイルを検索することはできません。Debug Tool は、以下のコマンド、ユーザー出口、または環境変数からの入力に基づいて、.mdbg ファイルをここに示す順序で検索します。
- 機能コード 37 を指定する EQAUEDAT ユーザー出口。
- EQAUEDAT ユーザー出口を作成しない場合、またはこのユーザー出口によってそのファイルを検出できない場合は、デフォルトのデータ・セット名である userid.mdbg(load_module_or_DLL_name)、あるいは UNIX® システム・サービスの場合は ./load_module_or_DLL_name.mdbg。
Debug Tool が .mdbg ファイルを見つけられない場合、
以下のコマンド、DD ステートメント、または環境変数からの入力に基づいて、
mdbg ファイルをここに示す順序で検索します。
- SET MDBG コマンド
- SET DEFAULT MDBG コマンド
- EQAMDBG DD 名
- EQA_MDBG_PATH 環境変数
DEBUG コンパイラー・オプション、dbgld コマンド、および CDADBGLD ユーティリティーについて詳しくは、「z/OS XL C/C++ ユーザーズ・ガイド」を参照してください。
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。
これにより、EQAXOPT MDBG オプションのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。
これにより、EQAXOPT MDBG オプションのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。
これにより、EQAXOPT MDBG オプションのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。
これにより、EQAXOPT MDBG オプションのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。
これにより、EQAXOPT MDBG オプションのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
環境変数を指定できる場合は、環境変数 EQA_USE_MDBG を YES または NO に設定できます。
これにより、EQAXOPT MDBG オプションのすべての設定 (デフォルト設定を含む) がオーバーライドされます。
|
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)