ほとんどの Debug Tool コマンドを使用して、使用可能なデバッグ情報を持つ非言語環境プログラム COBOL プログラムをデバッグすることができます。 例外については、「Debug Tool リファレンスおよびメッセージ」に記載されています。非言語環境プログラム COBOL プログラムをデバッグする前に、非言語環境プログラム COBOL プログラムの準備の説明に従ってプログラムを準備してください。
本書の内容を読み進む際にご注意いただきたいことは、言語環境プログラムのライブラリーを使用してプログラムをリンクおよび実行したとしても、OS/VS COBOL プログラムは非言語環境プログラムのプログラムである点です。
VS COBOL II プログラムは、NOTEST コンパイラー・オプションを使用してコンパイルし、かつ非言語環境プログラム・ライブラリーでリンクした場合は、非言語環境プログラムのプログラムです。 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 ********************************** IBM Debug Tool Version 10 Release 1 Mod 0 11/06/2009 4:11:41 PM 5655-V50: Copyright IBM Corp. 1992, 2009 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 が開始されたエンクレーブから制御が戻った後は、非言語環境プログラムのプログラムをデバッグしたり、非言語環境プログラムのイベントを検出したりすることはできなくなります。