Debug Tool コマンドのほとんどは、デバッグ情報が使用可能な非言語環境プログラムの COBOL プログラムをデバッグするために使用できます。例外については、「Debug Tool リファレンスおよびメッセージ」に記載されています。非言語環境プログラムの COBOL プログラムをデバッグする前に、非言語環境プログラムの COBOL プログラムの準備の説明に従ってプログラムを準備してください。
本書の内容を読み進むときに注意すべきことは、言語環境プログラムのライブラリーを 使用してプログラムをリンクおよび実行したとしても、OS/VS COBOL プログラムは非言語環境プログラムのプログラムであるということです。
NOTEST コンパイラー・オプションを使用してコンパイルし、非言語環境プログラムのライブラリーとリンクした VS COBOL II プログラムは、非言語環境プログラムのプログラムです。TEST コンパイラー・オプションを使用してコンパイルし、言語環境プログラムのライブラリーとリンクした VS COBOL II プログラムは、言語環境プログラムのプログラムです。
非言語環境プログラムの COBOL に固有の情報が提供されている場合を除き、Debug Tool の始動方法と非言語環境プログラムの COBOL プログラムのデバッグ方法については、非言語環境プログラムのプログラムに関する情報を参照してください。
LOADDEBUGDATA (LDD) コマンドを使用して、コンパイル単位が非言語環境プログラムの COBOL のコンパイル単位であることを Debug Tool に示し、そのコンパイル単位に関連したデバッグ情報をロードします。LDD コマンドは、逆アセンブルであるとみなされるコンパイル単位に対してのみ使用できます。次の例の mypgm は、OS/VS COBOL プログラムのコンパイル単位名です: LDD mypgm
Debug Tool は、yourid.EQALANGX(mypgm) という名前を持つデータ・セットの中でデバッグ情報を見つけます。 Debug Tool がこのデータ・セットを見つけた場合は、非言語環境プログラムの COBOL プログラムのデバッグを開始できます。 Debug Tool がデータ・セットを見つけられない場合は、SET SOURCE または SET DEFAULT LISTINGS コマンドを入力し、デバッグ情報の検索場所を Debug Tool に指示します。リモート・デバッグ・モードでは、プログラムに入ったときに、データ・セット情報を指定するよう リモート・デバッガーがプロンプトを出します。
通常、デバッグ情報を持たないコンパイル単位は、DESCRIBE CUS または LIST NAMES CUS コマンドを入力してもリストされません。これらのコンパイル単位をリストに含めるには、SET ASSEMBLER ON コマンドを入力します。次回 DESCRIBE CUS または LIST NAMES CUS コマンドを入力するときに、これらのコンパイル単位がリストされます。
下図の Debug Tool セッション・パネルは、非言語環境プログラムの COBOL プログラムのデバッグ中にソース・ウィンドウに表示される情報を示しています。
1 NL COBOL LOCATION: COB03O initialization Command ===> Scroll ===> PAGE MONITOR --+----1----+----2----+----3----+----4----+----5----+----6 LINE: 0 OF 0 ******************************* TOP OF MONITOR ******************************** ****************************** BOTTOM OF MONITOR ****************************** SOURCE: COB03O ---1----+----2----+----3----+----4----+----5----+ LINE: 1 OF 111 2 1 3 ****************************************************** . 2 * PROGRAM NAME: COB03O * . 3 * * . 4 * COMPILED WITH IBM OS/VS COBOL COMPILER * . 5 ****************************************************** . 7 IDENTIFICATION DIVISION. . 8 PROGRAM-ID. COB03O. . 9 ************************************************************** . 10 * . 11 * LICENSED MATERIALS - PROPERTY OF IBM . 12 * . 13 * 5655-P14: Debug Tool for z/OS 14 * (C) Copyright IBM Corp. 2004 All Rights Reserved 15 * . 16 * US GOVERNMENT USERS RESTRICTED RIGHTS - USE, DUPLICATION OR . 17 * DISCLOSURE RESTRICTED BY GSA ADP SCHEDULE CONTRACT WITH IBM . 18 * CORP. . 19 * . 20 * . 21 ************************************************************** . 22 ENVIRONMENT DIVISION. . 23 DATA DIVISION. . LOG 0----+----1----+----2----+----3----+----4----+----5----+----6- LINE: 1 OF 7 ********************************* TOP OF LOG ********************************** 0001 IBM Debug Tool Version 9 Release 1 Mod 0 0002 10/30/2008 4:11:41 PM 0003 5655-U27: Copyright IBM Corp. 1992, 2008 0004 *** Commands file commands follow *** 0005 SET MSGID ON ; 0006 LDD ( COB03O, COB03AO ) ; 0007 EQA1891I *** Commands file commands end *** ******************************** BOTTOM OF LOG ******************************** PF 1:? 2:STEP 3:QUIT 4:LIST 5:FIND 6:AT/CLEAR PF 7:UP 8:DOWN 9:GO 10:ZOOM 11:ZOOM LOG 12:RETRIEVE
ソース・ウィンドウに表示される情報は、COBOL コンパイラーによって生成されるリストとほとんど同じものです。ソース・ウィンドウには、以下の情報が表示されます。
非言語環境プログラムの COBOL プログラムをデバッグするときには、次の一般的な制約事項が適用されます。
次の表に、現在のプログラム言語が非言語環境プログラムの COBOL の場合に、Debug Tool 変数の %PATHCODE に使用可能な値を示します。
| %PATHCODE | エントリー・タイプ |
|---|---|
| 1 | ブロックに入っています。 |
| 3 | プログラムにコーディングされたラベルに制御が到達した。 |
プログラムの開始時に NOPROMPT サブオプションを付けて TEST ランタイム・オプションを指定した場合、Debug Tool が後から CALL CEETEST または言語環境プログラム条件の発生によって開始されるときには、言語環境プログラムと非言語環境プログラムの両方のプログラムをデバッグでき、言語環境プログラムと非言語環境プログラムの両方のイベントを、Debug Tool を開始したエンクレーブおよび後続のエンクレーブで検出できます。より高いレベルのエンクレーブ では、非言語環境プログラムのプログラムのデバッグまたは非言語環境プログラムのイベントの検出はできません。 Debug Tool が開始されたエンクレーブから制御が戻った後は、非言語環境プログラムのプログラムをデバッグしたり、非言語環境プログラムのイベントを検出したりすることはできなくなります。