Rational Developer for System z バージョン 7.6

バッチまたは TSO プログラムでの Debug Tool の始動

ここでは、次の状態で実行されるプログラムをデバッグするために Debug Tool を始動する方法について説明します。

言語環境プログラムで始動されるプログラムに対する Debug Tool の始動

以下のいずれかのオプションを選択して、MVS の下で TSO 内に Debug Tool を開始します。

DTSU を使用せずに MVS の下で TSO 内に Debug Tool を開始するには、以下のステップを行います。

  1. プログラムは、TEST コンパイラー・オプションを使用して必ずコンパイル済みの状態にしてください。
  2. Debug Tool SEQAMOD ライブラリーがロード・モジュール検索パスに含まれていることを確認します。
    注:
    高位修飾子およびロード・ライブラリー名は、ご使用のシステムに固有のものです。 データ・セットの名前については、Debug Tool をインストールした担当者に問い合わせてください。 デフォルトでは、データ・セットの名前は SEQAMOD で終わります。このデータ・セットは既に、リンク・リスト内にあるか、または TSO ログオン・プロシージャーに組み込まれている可能性があります。そのような場合は、特に操作を行わなくてもアクセスできます。
  3. プログラムに必要なファイルを含んでいるその他のすべてのデータ・セットを割り振ります。
  4. 使用したいすべての Debug Tool ファイルを割り振ります。例えば、セッション・ログ・ファイルが必要であれば、そのセッション・ログ・ファイルに対してデータ・セットを割り振ってください。セッション・ログ・ファイルは、端末に割り振らないでください。例えば、ALLOC FI(INSPLOG) DA(*) は使用しないでください。
  5. TEST ランタイム・オプションに適切なサブオプションを指定してプログラムを開始させるか、あるいはプログラムのソースに CEETESTPLITEST、または __ctest() の呼び出しを組み込んでください。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

例: Debug Tool ロード・ライブラリー・データ・セットの割り振り

以下の CLIST の部分的な例は、Debug Tool ロード・ライブラリー・データ・セット (SEQAMOD) が リンク・リストまたは TSO ログオン・プロシージャーにない場合に、それを割り振る方法を示します。

例 1:

PROC 0 TEST
TSOLIB ACTIVATE DA('hlq.SEQAMOD')
END

例 2:

PROC 0 TEST
TSOLIB DEACTIVATE
FREE FILE(SEQAMOD)
ALLOCATE DA('hlq.SEQAMOD') FILE(SEQAMOD) SHR REUSE
TSOLIB ACTIVATE FILE(SEQAMOD)
END

CLIST の例のどちらかを MYID.CLIST(DTSETUP) に保管する場合、TSO READY プロンプトで次のコマンドを入力して CLIST を実行できます。

EXEC 'MYID.CLIST(DTSETUP)'

この CLIST が稼働して、適切な Debug Tool データ・セットが割り振られます。

例: Debug Tool ファイルの割り振り

以下の例で示していることは、コマンド行を使用して優先ファイルとログ・ファイルを割り振ってから、TEST ランタイム・オプション指定で COBOL プログラム (tstscrpt) を開始する方法です。

ALLOCATE FILE(insppref) DATASET(setup.pref) REUSE
ALLOCATE FILE(insplog) DATASET(session.log) REUSE
CALL 'USERID1.MYLIB(TSTSCRPT)' '/TEST'

この例で示していることは、デフォルトの Debug Tool ランタイム・サブオプションとデフォルトの言語環境プログラムのランタイム・オプションが想定済みであることです。

以下の例で示していることは、CLIST を使用して優先ファイル (debug.preferen) とログ・ファイル (debug.log ) を定義してから、TEST ランタイム・オプション指定で C プログラム (prog1) を開始できる方法です。

ALLOC FI(insplog)  DA(debug.log)              REUSE
ALLOC FI(insppref) DA(debug.preferen)         REUSE

CALL 'MYID.MYQUAL.LOAD(PROG1)' +
    ' TRAP(ON) TEST(,*,;,insppref)/'

この CLIST の開始前に、これらのデータ・セットすべてが存在している必要があります。

バッチ・モードの Debug Tool の始動

以下のいずれかのオプションを選択して、バッチ・モードで Debug Tool を開始します。

DTSU を使用せずにバッチ・モードで Debug Tool を開始するには、以下のステップを行います。

  1. プログラムが TEST コンパイラー・オプションを使用してコンパイル済みであることを確認してください。
  2. JCL を変更します。この JCL を使って、Debug Tool の適切なデータ・セットを組み込み、TEST ランタイム・オプションを指定してバッチ・プログラムを実行します。
  3. 修正された JCL を実行します。

MVS バッチ・ジョブは、以下のオプションのいずれかを選択することにより、フルスクリーン・モードでデバッグできます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

例: バッチ・モードで Debug Tool を実行するための JCL

COBOL プログラム、EMPLRUN のバッチ・デバッグ・セッション用のサンプル JCL を次に示します。ジョブ・カードおよびデータ・セット名は、ご使用のシステムに適合するように変更する必要があります。

//DEBUGJCL JOB <appropriate JOB card information>
//* ****************************************************************
//*  JCL to run a batch Debug Tool session
//*    Program EMPLRUN was previously compiled with the COBOL
//*    compiler TEST option
//* ****************************************************************
//STEP1  EXEC PGM=EMPLRUN,
//        PARM='/TEST(,INSPIN,,)'       1 
//*
//*  Include the Debug Tool SEQAMOD data set
//*
//STEPLIB     DD DISP=SHR,DSN=userid.TEST.LOAD
//            DD DISP=SHR,DSN=hlq.SEQAMOD
//*
//*  Specify a commands file with DDNAME matching the one
//*    specified in the /TEST runtime option above
//*  This example shows inline data but a data set could be
//*    specified like: //INSPIN  DD DISP=SHR,DSN=userid.TEST.INSPIN
//*
//INSPIN      DD *
           STEP;
           AT *
             PERFORM
                QUERY LOCATION;
                GO;
             END-PERFORM;
           GO;
           QUIT;
/*
//*
//*  Specify a log file for the debug session
//*    Log file can be a data set with LRECL >= 42 and <= 256
//*    For COBOL only, use LRECL <= 72 if you are planning to
//*    use the log file as a commands file in subsequent Debug
//*    Tool sessions.  You can specify the log file like:
//*    //INSPLOG   DD DISP=SHR,DSN=userid.TEST.INSPLOG
//*
//INSPLOG     DD SYSOUT=*,DCB=(LRECL=72,RECFM=FB,BLKSIZE=0)
//SYSPRINT    DD SYSOUT=*
//SYSUDUMP    DD DUMMY
//SYSOUT      DD SYSOUT=*
/*
//
フルスクリーン・モードでデバッグするための例の修正方法

例: バッチ・モードで Debug Tool を実行するための JCLに記載された例を修正して、それによりバッチ・プログラムをフルスクリーン・モードでデバッグ可能になります。以下のいずれかの例に対して、行  1  を変更します。

言語環境プログラムの外部で始動されるプログラムに対する Debug Tool の始動

言語環境プログラムの制御下で実行されない初期プログラムを持つ MVS バッチまたは TSO プログラム (非言語環境プログラムの COBOL プログラムを含む) をデバッグするには、Debug Tool プログラム EQANMDBG を使用して Debug Tool を始動します。

初期プログラムが言語環境プログラムの制御下で実行されず、後続のプログラムが言語環境プログラムの外部で実行される場合は、言語環境プログラムで始動されるプログラムに対する Debug Tool の始動で説明している方法で、すべてのプログラムをデバッグできます。

EQANMDBG を使用して Debug Tool を開始するには、以下のオプションのいずれかを実行します。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

EQANMDBG へのパラメーターの引き渡し

JCL、CLIST、または REXX EXEC を変更して EQANMDBG を開始する場合は、次のパラメーターを EQANMDBG に渡します。

これらのパラメーターは、次のいずれかの方法で指定できます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

PARM ストリングのみを使用した EQANMDBG へのパラメーターの引き渡し

EQANMDBG へパラメーターを受け渡す最も簡単な方法は、PARM ストリングを変更して、デバッグするプログラムの名前と、オプションでその後に Debug Tool ランタイム・オプションおよびプログラムに必要なパラメーターを含める方法です。

このストリングの構文は、次のとおりです。

EQANMDBG PARM ストリングの構文図

以下のテーブルには、サンプル JCL ステートメントが PARM ストリング変更後にどのように見えるかを比較してあります。

オリジナルのサンプル JCL 変更されたサンプル JCL
//STEP1 EXEC PGM=MYPROG,PARM='ABC,X(12)'
 ...
//
//STEP1 EXEC PGM=EQANMDBG,
// PARM='MYPROG,NATLANG(UEN)/ABC,X(12)'
 ...
//

EQANMDBG DD ステートメントのみを使用した EQANMDBG へのパラメーターの引き渡し

プログラムに受け渡すユーザー・パラメーター・ストリングが長すぎて、必要な Debug Tool パラメーターを PARM ストリングに追加できない場合は、PARM ストリングを変更せずに、EQANMDBG DD ステートメントを使用して、必要なすべてのパラメーターを Debug Tool へ受け渡します。

EQANMDBG DD ステートメントを JCL へ追加するとき、または TSO セッションで EQANMDBG ファイルを割り振るときには、RECFM (F、V、または U) および LRECL を使用して、データ・セットを指し示すことができます。データ・セットには 1 行以上の行が含まれている必要があります。 データ・セットが複数行である場合は、各行からすべての末尾ブランクが除去されます。ただし、各行は 1 桁目から始まることが想定されており、先行ブランクはパラメーター・データの一部として扱われます。このファイルではシーケンス番号はサポートされません。

次の表では、元の JCL と変更後の JCL を比較しています。

元の JCL 変更後の JCL
//STEP1 EXEC PGM=MYPROG,PARM='ABC,X(12)'
 ...
//
//STEP1 EXEC PGM=EQANMDBG,
// PARM='ABC,X(12)'
//EQANMDBG DD *
MYPROG,
TEST(ALL,INSPIN,,MFI:*),
NATLANG(ENU)
/*
 ...
//

PARM ストリングおよび EQANMDBG DD ステートメントを使用した EQANMDBG へのパラメーターの引き渡し

この方法では、デバッグするユーザー・プログラムの名前を PARM ストリングの一部として 入力でき、その後、他のすべての Debug Tool ランタイム・オプションを EQANMDBG DD ステートメントを使用して指定できます。

同じランタイム・パラメーターを複数のプログラムへ受け渡す必要があり、デバッグするプログラムの名前を PARM ストリングへ追加するためのスペースはあるが、すべてのランタイム・パラメーターを PARM ストリングへ追加するスペースがない場合は、この方法が適しています。

この方法を使用するときには、次の操作を行う必要があります。

次の表では、元の JCL と変更後の JCL を比較しています。

元の JCL 変更後の JCL
//STEP1 EXEC PGM=MYPROG,PARM='ABC,X(12)'
 ...
//
//STEP1 EXEC PGM=EQANMDBG,
// PARM='MYPROG/ABC,X(12)'
//EQANMDBG DD *
*,TEST(ALL,INSPIN,,MFI:*),NATLANG(ENU)
/*
 ...
//

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

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