デバッグ・セッションの計画のタスクを完了したら、収集した情報を使用して以下のプロセスを更新できます。
これらのプロセスの更新方法について詳しくは、以下のトピックを参照してください。
ここでは、デバッグ・セッションの計画で選択した内容を実装するために、コンパイル、アセンブリー、およびリンクのプロセスに加えなければならない変更点について説明します。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) | このコンパイラー・オプションおよびソース・ファイルによって作成されたファイル | |
| TEST | コンパイラーに対する入力として使用したソース・ファイル | |
| NOTEST | 疑似アセンブラー・コードを含むリスト作成ファイル | |
| アセンブラー | ||
| ADATA | EQALANGX | |
| デバッグ情報は保存されない | 疑似アセンブラー・コードを含むリスト作成ファイル | |
この作業後については、ライブラリーおよびプロモーション・プロセスの更新を参照してください。
Debug Tool Utilities には、プログラムのコンパイルや、Debug Tool の開始に役立ついくつかのユーティリティーが備わっています。このトピックで説明されているステップは、コンパイラーおよびアセンブラーの以下のカテゴリーに当てはまります。
Debug Tool Utilities を使用してプログラムを準備し、Debug Tool を始動する場合は、付録C. 例: 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
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 環境で実行するためにコンパイルするプログラムにも、同じ制約事項が適用されます。
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 環境で実行するためにコンパイルするプログラムにも、同じ制約事項が適用されます。
ライブラリーを使用してプログラムの保守を行い、プログラムで品質とテストのレベル間を移動するのにプロモーション・プロセスを使用する場合、ご使用のプログラムに関する情報を取得するために必要なファイルを Debug Tool が確実に検出できるように、これらのプロセスを更新しなければならない場合があります。例えば、最終実動レベルでは開発レベルと同じライブラリーに対してアクセス権限を持たずに、最終実動レベルのプログラムをデバッグしようとすると、以下のリソースへアクセスできるように最終実動レベルの環境を更新しなければならない場合があります。
データ・セットが割り振られているときに SUBSYS=ssss パラメーターを 必要とするライブラリー・システムでソース・コードが管理されている 場合、SUBSYS=ssss 割り振りパラメーターを 指定するカスタム・バージョンの EQAOPTS オプション・モジュールが必要です。 これには以下のプログラムのタイプが必要です。
CICS プログラムでは、これはサポートされません。詳しくは、「Debug Tool カスタマイズ・ガイド」を参照してください。
ここでは、2 およびDebug Tool の開始方法の選択の完了後に収集した情報を使用して、TEST ランタイム・オプション・ストリングを記述してから、そのストリングを適切な場所に保存します。
場合によっては、異なる複数の TEST ランタイム・オプション・ストリングを記述する必要があります。例えば、CICS プログラム用に記述した TEST ランタイム・オプション・ストリングが、IMS™ プログラムで使用できる TEST ランタイム・オプション・ストリングと同じであるとは限りません。この状態の場合、表 12 を使用して、デバッグするそれぞれのタイプのプログラムで使用するストリングを記録することが必要になる場合があります。
| 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 ランタイム・オプション・ストリングを記述したら、次は適切な場所に保存しなければなりません。表 10 で記録した情報を使用して以下のリストを検討してください。ここから、各 TEST ランタイム・オプション・ストリングの保存方法および保存場所に関する説明を参照できます。