Rational Developer for System z バージョン 7.6

Debug Tool でプログラムをデバッグするためのプロセスの更新

デバッグ・セッションの計画のタスクを完了したら、収集した情報を使用して以下のプロセスを更新できます。

これらのプロセスの更新方法について詳しくは、以下のトピックを参照してください。

コンパイル、アセンブリー、およびリンク・プロセスの更新

ここでは、デバッグ・セッションの計画で選択した内容を実装するために、コンパイル、アセンブリー、およびリンクのプロセスに加えなければならない変更点について説明します。JCL の管理について、およびご使用のサイトのコンパイルまたはアセンブリーのプロセスについて十分理解している場合は、必要な特定の変更内容の説明についてDebug Tool Utilities を使用しないプログラムのコンパイルを参照してください。ご使用のサイトがこれらのプロセスの管理に Debug Tool Utilities を使用している場合、「プログラムの準備 (Program Preparation)」オプションを使用してそのプロセスを更新する方法について、Debug Tool Utilities を使用したプログラムのコンパイルを参照してください。

Debug Tool Utilities を使用しないプログラムのコンパイル

JCL を作成または変更して、プログラムをコンパイルまたはアセンブルするのに必要なすべてのステートメントが含まれるようにし、すべてのライブラリーを適切にリンクします。 以下に、行う必要のある変更をリストします。

表 11. 特定のコンパイラー・オプションまたはサブオプションを使用してコンパイルするときに保存する必要のあるファイル
プログラム言語 コンパイラー・サブオプションまたはアセンブラー・オプション 保存する必要のあるファイル
COBOL
SEPARATE 分離デバッグ・ファイル
その他 リスト作成ファイル
NOTEST 疑似アセンブラー・コードを含むリスト作成ファイル
非言語環境プログラムの COBOL

OS/VS COBOL プログラムのコンパイル

VS COBOL II プログラムのコンパイル

EQALANGX
その他 疑似アセンブラー・コードを含むリスト作成ファイル
PL/I
SEPARATE 分離デバッグ・ファイル
その他 (Enterprise PL/I 以前) リスト作成ファイル
その他 (Enterprise PL/I) コンパイラーに対する入力として使用したソース・ファイル
NOTEST 疑似アセンブラー・コードを含むリスト作成ファイル
C/C++
DEBUG(DWARF) このコンパイラー・オプションおよびソース・ファイルによって作成されたファイル
TEST コンパイラーに対する入力として使用したソース・ファイル
NOTEST 疑似アセンブラー・コードを含むリスト作成ファイル
アセンブラー
ADATA EQALANGX
デバッグ情報は保存されない 疑似アセンブラー・コードを含むリスト作成ファイル

この作業後については、ライブラリーおよびプロモーション・プロセスの更新を参照してください。

Debug Tool Utilities を使用したプログラムのコンパイル

Debug Tool Utilities には、プログラムのコンパイルや、Debug Tool の開始に役立ついくつかのユーティリティーが備わっています。このトピックで説明されているステップは、コンパイラーおよびアセンブラーの以下のカテゴリーに当てはまります。

Debug Tool Utilities を使用してプログラムを準備し、Debug Tool を始動する場合は、付録C. 例: Debug Tool Utilities を使用したプログラムの準備とセットアップ・ファイルの変更を参照してください。ここには、Debug Tool Utilities を使用してサンプルのプログラムを準備し、Debug Tool を始動する方法が説明されています。サンプルを参照し、Debug Tool Utilities の使用方法を理解した後、以下のステップを実行します。

  1. Debug Tool Utilities を始動します。
  2. 「Program Preparation」を選択するために 1 と入力し、Enter を押します。
  3. 使用するコンパイラーに対応する番号を入力し、Enter を押します。
  4. コンパイルするプログラムに関する情報を入力し、CICS® と DB2/SQL のフィールドに適切なオプションを選択します。

    プログラム・ソースが順次データ・セットで、DB2 プリコンパイラーが選択されている場合、パネル EQAPPC1BEQAPPC2BEQAPPC3BEQAPPC4B、または EQAPPC5BDBRMLIB データ・セット・フィールドがメンバー名を含む区分データ・セットであることを確認してください。 例えば、DEBUG.TEST.DBRMLIB(PROG1) など。

    ¥ を入力してオプションおよびデータ・セット名パターンを編集 (Enter ¥ to edit options and data set name patterns)」フィールドに円記号 ("¥") を入力して、Enter を押します。

  5. 表 5 で収集した情報を使用し、フィールドに適切な値を入力します。 必要なすべての変更を加えた後、PF3 を押してこの情報を保管し、前のパネルに戻ります。
  6. 選択内容を確認します。Enter キーを押します。
  7. 選択内容を確認し、Enter を押します。
  8. コンパイルの実行後、パネルが表示されます。コンパイルでエラーがあった場合は、メッセージを検討し、必要な変更を行います。ステップ 1 に戻り、コンパイルを繰り返してください。
  9. 「Program Preparation」パネルに戻るまで、PF3 を押します。
  10. 「Program Preparation」パネルで、"L" と入力して Enter を押します。
  11. 「Link Edit」パネルで、リンク・エディットをフォアグラウンドとバックグラウンドのどちらで実行するかを指定します。プログラムにリンクする必要がある、他のライブラリーの名前を指定します。すべての変更が済んだら、Enter を押します。
  12. 選択内容を確認し、Enter を押します。
  13. リンク・エディットが済むと、メッセージを検討し、必要な変更を行います。ステップ 1 に戻り、処理を繰り返してください。
  14. Debug Tool Utilities のメイン・パネルに戻るまで、PF3 を押します。

この作業後については、ライブラリーおよびプロモーション・プロセスの更新を参照してください。

HFS ファイル・システムでの Enterprise PL/I プログラムのコンパイル

HFS ファイル・システム上で Enterprise PL/I プログラムをコンパイルおよび起動する場合は、以下のいずれかを実行してください。

デフォルトでは、Enterprise PL/I コンパイラーは、相対パス名とファイル名をオブジェクト・ファイルに保管します。 デバッグ・セッションの開始時に、プログラムを起動するのと同じ場所にソースがないと、Debug Tool はソースを見つけられません。この問題を回避するためには、プログラムのコンパイル時にソースの絶対パス名を指定します。例えば、次の一連のコマンドを実行すると、Debug Tool はソースを検索しません。これは、ソースが別のディレクトリー (/u/myid/mypgm) 内にあるためです。

  1. プログラムがあるディレクトリーに移動して、プログラムをコンパイルする。
    cd /u/myid/mypgm
    pli -g "//TEST.LOAD(HELLO)" hello.pli
  2. UNIX® システム・サービスを終了し、TSO READY プロンプトに戻る。
  3. TEST ランタイム・オプションを使用してプログラムを起動する。
    call TEST.LOAD(HELLO) 'test/'

コンパイル・コマンドを次のように変更すると、Debug Tool はソースを検索します。

pli -g "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.pli

CICS 環境で実行するためにコンパイルするプログラムにも、同じ制約事項が適用されます。

c89 または c++ を使用した C プログラムのコンパイル

c89 または c++ を使用してアプリケーションをビルドする場合は、次のステップを実行してください。

  1. 通常どおりにユーザーのソース・コードをコンパイルしますが、-g オプションを指定してデバッグ情報を生成します。-g オプションは、TSO または MVS バッチでの、TEST コンパイラー・オプションに相当するものです。例えば、C ソース・ファイル fred.cu/mike/app ディレクトリーからコンパイルするには、次のように指定します。
    cd /u/mike/app
    c89 -g -o "//PROJ.LOAD(FRED)" fred.c
    注:
    上のコマンド行内の引用符 (") は必要です。
  2. TSO 環境を上で説明されているように設定します。
  3. 次のように入力し、TSO のもとでプログラムをデバッグします。
    FRED TEST ENVAR('PWD=/u/mike/app') / asis
    注:
    上のコマンド行内のアポストロフィ (') は必要です。ENVAR('PWD=/u/mike/app') は、環境変数 PWD をソース・ファイルのコンパイル元となったパスに設定します。Debug Tool は、この情報を使用してどこからソース・ファイルを読み取るかを決定します。

HFS ファイル・システムでの C プログラムのコンパイル

HFS ファイル・システムでプログラムをコンパイルしたり起動したりする場合は、以下のいずれかを実行しなければなりません。

デフォルトでは、C コンパイラーは、ソース・ファイルの相対パスとファイル名をオブジェクト・ファイルに保管します。デバッグ・セッションの開始時に、プログラムを起動するのと同じ場所にソースがないと、Debug Tool はソースを見つけられません。この問題を回避するためには、プログラムのコンパイル時にソースの絶対パス名を指定します。例えば、次の一連のコマンドを実行すると、Debug Tool はソースを検索しません。これは、ソースが別のディレクトリー (/u/myid/mypgm) 内にあるためです。

  1. プログラムがあるディレクトリーに移動して、プログラムをコンパイルする。
    cd /u/myid/mypgm
    c89 -g -o "//TEST.LOAD(HELLO)" hello.c
  2. UNIX システム・サービスを終了し、TSO READY プロンプトに戻る。
  3. TEST ランタイム・オプションを使用してプログラムを起動する。
    call TEST.LOAD(HELLO) 'test/'

コンパイル・コマンドを以下に変更すると、Debug Tool はソースを検出します。

c89 -g -o "//TEST.LOAD(HELLO)" /u/myid/mypgm/hello.c

CICS 環境で実行するためにコンパイルするプログラムにも、同じ制約事項が適用されます。

HFS ファイル・システムでの C++ プログラムのコンパイル

HFS ファイル・システムでプログラムをコンパイルしたり起動したりする場合は、以下のいずれかを実行しなければなりません。

デフォルトでは、C++ コンパイラーは、ソース・ファイルの相対パスとファイル名をオブジェクト・ファイルに保管します。 デバッグ・セッションの開始時に、プログラムを起動するのと同じ場所にソースがないと、Debug Tool はソースを見つけられません。この問題を回避するためには、プログラムのコンパイル時にソースの絶対パス名を指定します。例えば、次の一連のコマンドを実行すると、Debug Tool はソースを検索しません。これは、ソースが別のディレクトリー (/u/myid/mypgm) 内にあるためです。

  1. プログラムがあるディレクトリーに移動して、プログラムをコンパイルする。
    cd /u/myid/mypgm
    c++ -g -o "//TEST.LOAD(HELLO)" hello.cpp
  2. UNIX システム・サービスを終了し、TSO READY プロンプトに戻る。
  3. TEST ランタイム・オプションを使用してプログラムを起動する。
    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 カスタマイズ・ガイド」を参照してください。

推奨される Debug Tool の始動方法を実装するために必要な変更を行う

ここでは、2 およびDebug Tool の開始方法の選択の完了後に収集した情報を使用して、TEST ランタイム・オプション・ストリングを記述してから、そのストリングを適切な場所に保存します。

場合によっては、異なる複数の TEST ランタイム・オプション・ストリングを記述する必要があります。例えば、CICS プログラム用に記述した TEST ランタイム・オプション・ストリングが、IMS™ プログラムで使用できる TEST ランタイム・オプション・ストリングと同じであるとは限りません。この状態の場合、表 12 を使用して、デバッグするそれぞれのタイプのプログラムで使用するストリングを記録することが必要になる場合があります。

表 12. ご使用のサイトで必要となる TEST ランタイム・オプション・ストリングを記録してください。
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 ランタイム・オプション・ストリングの保存方法および保存場所に関する説明を参照できます。

EQADBCXT、EQADICXT、または EQADDCXT ユーザー出口ルーチンを介する場合
言語環境プログラム ユーザー出口を使用した TEST ランタイム・オプションの指定を参照してください。
DFSBXITA ユーザー出口ルーチンを介する場合
DFSBXITA ユーザー出口ルーチンの設定を参照してください。
CADP トランザクションの使用
CADP を使用したデバッグ・プロファイルの作成および保管を参照してください。
DTCN トランザクションの使用
DTCN プロファイルの作成と保管を参照してください。
DB2 カタログの使用
DB2 ストアード・プロシージャー・プログラムの準備を参照してください。
CEETEST、__ctest()、または PLITEST への呼び出しをコーディングする場合
以下のトピックのいずれかを参照してください。
CEEUOPT または CEEROPT を介する場合
以下のトピックのいずれかを参照してください。
JCL の CEEOPTS DD ステートメント、または TSO の CEEOPTS 割り振りの使用
Debug Tool Utilities の「バッチ・デバッグ用 JCL (JCL for Batch Debugging)」オプションを使用してください。
プログラム開始時における EXEC ステートメントのパラメーターの使用
EXEC ステートメントを指定する場合、パラメーターとして TEST ランタイム・オプションを含めてください。
プログラム開始時における RUN ステートメントのパラメーターの使用
RUN ステートメントを指定する場合、パラメーターとして TEST ランタイム・オプションを含めてください。
プログラム開始時における CALL ステートメントのパラメーターの使用
Debug Tool の始動 の例を参照してください。
EQASET トランザクションを介する場合
非言語環境プログラム IMS MPP の EQASET トランザクションの実行を参照してください。
EQANMDBG プログラムを介する場合
言語環境プログラムの外部で始動されるプログラムに対する Debug Tool の始動を参照してください。

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)