デバッグ・セッションの計画のタスクを完了したら、収集した情報を使用して以下のプロセスを更新できます。
これらのプロセスの更新方法について詳しくは、以下のトピックを参照してください。
ここでは、デバッグ・セッションの計画で選択した内容を実装するために、コンパイル、アセンブリー、およびリンクのプロセスに加えなければならない変更点について説明します。JCL の管理について、およびご使用のサイトのコンパイルまたはアセンブリーのプロセスについて十分理解している場合は、必要な特定の変更内容の説明についてDebug Tool Utilities を使用しないプログラムのコンパイルを参照してください。ご使用のサイトがこれらのプロセスの管理に Debug Tool Utilities を使用している場合、「プログラムの準備 (Program Preparation)」オプションを使用してそのプロセスを更新する方法について、Debug Tool Utilities を使用したプログラムのコンパイルを参照してください。
JCL を作成または変更して、プログラムをコンパイルまたはアセンブルするのに必要なすべてのステートメントが含まれるようにし、すべてのライブラリーを適切にリンクします。 以下のリストは、行う必要がある変更を説明したものです。
各コンパイラーに対して、Debug Tool を始動するために必要となる追加更新がある場合があります。以下のリストはそうした更新を説明したものです。
| プログラミング言語 | コンパイラー・サブオプションまたはアセンブラー・オプション | 保存する必要があるファイル |
|---|---|---|
| COBOL | ||
| SEPARATE | 分離デバッグ・ファイル | |
| それ以外 | リスト・ファイル | |
| NOTEST | 疑似アセンブラー・コードを含むリスト作成ファイル | |
| 非言語環境プログラム COBOL | ||
| EQALANGX | ||
| それ以外 | 疑似アセンブラー・コードが入ったリスト・ファイル | |
| PL/I | ||
| SEPARATE | 分離デバッグ・ファイル | |
| それ以外 (Enterprise PL/I の前) | リスト・ファイル | |
| それ以外 (Enterprise PL/I) | コンパイラーに対する入力として使用したソース・ファイル | |
| NOTEST | 疑似アセンブラー・コードを含むリスト作成ファイル | |
| C/C++ | ||
| DEBUG(DWARF) | .dbg ファイルおよびソース・ファイル
ソース・ファイルを格納する .mdbg ファイルを使用している場合は、その .mdbg ファイルを保存します。 |
|
| TEST | コンパイラーに対する入力として使用したソース・ファイル | |
| NOTEST | 疑似アセンブラー・コードを含むリスト作成ファイル | |
| アセンブラー | ||
| ADATA | EQALANGX | |
| デバッグ情報は保存されません | 疑似アセンブラー・コードを含むリスト作成ファイル | |
この作業の完了後は、ライブラリーおよびプロモーション・プロセスの更新を参照してください。
Debug Tool Utilities には、プログラムのコンパイルや、Debug Tool の開始に役立ついくつかのユーティリティーが備わっています。このトピックで説明されているステップは、コンパイラーおよびアセンブラーの以下のカテゴリーに当てはまります。
Debug Tool Utilities を使用してプログラムを準備し、Debug Tool を始動する場合は、付録D. 例: Debug Tool Utilities を使用したプログラムの準備とセットアップ・ファイルの変更を参照してください。ここには、Debug Tool Utilities を使用してサンプルのプログラムを準備し、Debug Tool を始動する方法が説明されています。サンプルを参照し、Debug Tool Utilities の使用方法を理解した後、以下のステップを実行します。
プログラム・ソースが順次データ・セットで、DB2 プリコンパイラーを選択した場合は、 パネル「EQAPPC1B」、「EQAPPC2B」、「EQAPPC3B」、「EQAPPC4B」、または「EQAPPC5B」の DBRMLIB データ・セット・フィールドが、メンバー名が指定された区分データ・セットであることを確認してください。例えば、DEBUG.TEST.DBRMLIB(PROG1) など。
「¥ を入力してオプションおよびデータ・セット名パターンを編集 (Enter ¥ to edit options and data set name patterns)」フィールドに円記号 ("¥") を入力して、Enter を押します。
この作業の完了後は、ライブラリーおよびプロモーション・プロセスの更新を参照してください。
HFS ファイル・システム上で Enterprise PL/I プログラムをコンパイルおよび起動する場合は、以下のいずれかを実行してください。
デフォルトでは、Enterprise PL/I コンパイラーは、相対パス名とファイル名をオブジェクト・ファイルに保管します。 デバッグ・セッションの開始時に、プログラムを起動するのと同じ場所にソースがないと、Debug Tool はソースを見つけられません。この問題を回避するためには、プログラムのコンパイル時にソースの絶対パス名を指定します。例えば、次の一連のコマンドを実行すると、Debug Tool はソースを検索しません。これは、ソースが別のディレクトリー (/u/myid/mypgm) 内にあるためです。
cd /u/myid/mypgm pli -g "//TEST.LOAD(HELLO)" hello.pli
call TEST.LOAD(HELLO) 'test/'
コンパイル・コマンドを次のように変更すると、Debug Tool はソースを検索します。
pli -g "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.pli
CICS 環境で実行するためにコンパイルするプログラムにも、同じ制約事項が適用されます。
c89 または c++ を使用してアプリケーションをビルドする場合は、次のステップを実行してください。
cd /u/mike/app c89 -g -o "//PROJ.LOAD(FRED)" fred.c
FRED TEST ENVAR('PWD=/u/mike/app') / asis
.mdbg ファイルを作成する場合は、dbgld コマンドで -c オプションを指定するか、CDADBGLD ユーティリティーで CAPSRC オプションを指定して、ソース・ファイルを.mdbg ファイルに取り込みます。dbgld コマンドと CDADBGLD ユーティリティーの使い方については、「z/OS XL C/C++ ユーザーズ・ガイド」を参照してください。Debug Tool ではプログラムをデバッグするために .mdbg ファイルへのアクセスが必要です。
HFS ファイル・システムでプログラムをコンパイルしたり起動したりする場合は、以下のいずれかを実行しなければなりません。
デフォルトでは、C コンパイラーは、ソース・ファイルの相対パスとファイル名をオブジェクト・ファイルに保管します。デバッグ・セッションの開始時に、プログラムを起動するのと同じ場所にソースがないと、Debug Tool はソースを見つけられません。この問題を回避するためには、プログラムのコンパイル時にソースの絶対パス名を指定します。例えば、次の一連のコマンドを実行すると、Debug Tool はソースを検索しません。これは、ソースが別のディレクトリー (/u/myid/mypgm) 内にあるためです。
cd /u/myid/mypgm c89 -g -o "//TEST.LOAD(HELLO)" hello.c
call TEST.LOAD(HELLO) 'test/'
コンパイル・コマンドを以下に変更すると、Debug Tool はソースを検出します。
c89 -g -o "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.c
CICS 環境で実行するためにコンパイルするプログラムにも、同じ制約事項が適用されます。
.mdbg ファイルを作成する場合は、dbgld コマンドで -c オプションを指定するか、CDADBGLD ユーティリティーで CAPSRC オプションを指定して、ソース・ファイルを.mdbg ファイルに取り込みます。dbgld コマンドと CDADBGLD ユーティリティーの使い方については、「z/OS XL C/C++ ユーザーズ・ガイド」を参照してください。Debug Tool ではプログラムをデバッグするために .mdbg ファイルへのアクセスが必要です。
HFS ファイル・システムでプログラムをコンパイルしたり起動したりする場合は、以下のいずれかを実行しなければなりません。
デフォルトでは、C++ コンパイラーは、ソース・ファイルの相対パスとファイル名をオブジェクト・ファイルに保管します。 デバッグ・セッションの開始時に、プログラムを起動するのと同じ場所にソースがないと、Debug Tool はソースを見つけられません。この問題を回避するためには、プログラムのコンパイル時にソースの絶対パス名を指定します。例えば、次の一連のコマンドを実行すると、Debug Tool はソースを検索しません。これは、ソースが別のディレクトリー (/u/myid/mypgm) 内にあるためです。
cd /u/myid/mypgm c++ -g -o "//TEST.LOAD(HELLO)" hello.cpp
call TEST.LOAD(HELLO) 'test/'
コンパイル・コマンドを以下に変更すると、Debug Tool はソースを検出します。
c++ -g -o "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.cpp
CICS 環境で実行するためにコンパイルするプログラムにも、同じ制約事項が適用されます。
.mdbg ファイルを作成する場合は、dbgld コマンドで -c オプションを指定するか、CDADBGLD ユーティリティーで CAPSRC オプションを指定して、ソース・ファイルを.mdbg ファイルに取り込みます。dbgld コマンドと CDADBGLD ユーティリティーの使い方については、「z/OS XL C/C++ ユーザーズ・ガイド」を参照してください。Debug Tool ではプログラムをデバッグするために .mdbg ファイルへのアクセスが必要です。
ライブラリーを使用してプログラムの保守を行い、プログラムで品質とテストのレベル間を移動するのにプロモーション・プロセスを使用する場合、ご使用のプログラムに関する情報を取得するために必要なファイルを Debug Tool が確実に検出できるように、これらのプロセスを更新しなければならない場合があります。例えば、最終実動レベルでは開発レベルと同じライブラリーに対してアクセス権限を持たずに、最終実動レベルのプログラムをデバッグしようとすると、以下のリソースへアクセスできるように最終実動レベルの環境を更新しなければならない場合があります。
他の問題判別ツールを使用している場合は、付録C. IBM 問題判別ツール製品で使用するプログラムのコンパイルおよびアセンブルに関するクイック・スタート・ガイドで、 使用しているコンパイラーまたはアセンブラーに対応するトピックを参照してください。 これらのトピックでは、問題判別ツールがそれに必要なファイルを見つけられるように、ご使用のレベル全体でどのファイルを移動するかについて説明します。
データ・セットの割り振り時に、ソース・コードが SUBSYS=ssss パラメーターを必要とするライブラリー・システムによって管理されている場合、SUBSYS=ssss 割り振りパラメーターを指定する EQAOPTS オプション・モジュールのカスタム・バージョンが必要です。 これは、以下のタイプのプログラムで必要です。
CICS プログラムでは、これはサポートされません。詳しくは、「Debug Tool カスタマイズ・ガイド」を参照してください。
このトピックでは、2および Debug Tool を開始する方法の選択の完了後に収集した情報を使用して、 TEST ランタイム・オプション・ストリングを記述してから、適切な場所にそのストリングを保存します。
複数の異なる TEST ランタイム・オプション・ストリングを記述する必要がある場合があります。 例えば、CICS プログラム用に記述した TEST ランタイム・オプション・ストリングが、IMS™ プログラムで使用できる TEST ランタイム・オプション・ストリングと同じであるとは限りません。その場合は、表 13 を使用して、デバッグするプログラムのタイプ別に使用するストリングを記録してください。
| TEST ランタイム・オプション・ストリング (TEST(ALL,,,MFI%SYSTEM01.TRMLU001:) など) | |
|---|---|
| TSO |
|
| JES バッチ |
|
| UNIX システム・サービス |
|
| CICS |
|
| DB2 |
|
| DB2 ストアード・プロシージャー (PROGRAM TYPE=MAIN) |
|
| DB2 ストアード・プロシージャー (PROGRAM TYPE=SUB) |
|
| IMS TM |
|
| IMS バッチ |
|
| IMS BTS |
|
TEST ランタイム・オプション・ストリングの形式を熟知していない場合は、以下のトピックを参照してください。
TEST ランタイム・オプション・ストリングは、記述した後に適切な場所に保存する必要があります。 表 11 で記録した情報を使用して、 TEST ランタイム・オプション・ストリングの保存場所および保存方法についての説明が含まれた、以下のリストを確認します。