Rational Developer for System z バージョン 7.6

フルスクリーン・モードの使用方法: 概要

下記のトピックは、Debug Tool のフルスクリーン・モード・インターフェース について説明し、このインターフェースを使用して共通のデバッグ・タスクを 実行する方法を示します。

ユーザー・プログラムのデバッグは、後でバッチ・モードまたは 行モードを使用する予定になっている場合でも、フルスクリーン・モードで 行うのが、Debug Tool の使用法を学習する上で一番わかりやすい方法です。

注:
下記のトピックで使用する PF キーの定義は、デフォルトの設定値です。

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

Debug Tool セッション・パネル

Debug Tool セッション・パネルには、デバッグするプログラムに関する情報を持つヘッダー、コマンド行、および最高 3 つまでの物理ウィンドウが含まれています。物理ウィンドウは、特定のタイプのデバッグ情報を表示する、画面上の専用スペースです。デバッグ情報は、論理ウィンドウと呼ばれる、以下の各タイプに編成されています。

モニター・ウィンドウ
変数とその値。これらは、SET AUTOMONITOR ON コマンドおよび MONITOR コマンドを入力することによって表示できます。
ソース・ウィンドウ
ソース・ファイルまたはリスト・ファイル。これらは Debug Tool で検出するか、存在する場所をユーザーが指定できます。
ログ・ウィンドウ
ユーザーと Debug Tool との対話、およびそれらの対話の結果を記録したレコード。
メモリー・ウィンドウ
メモリーのセクション。これは、MEMORY コマンドを入力して選択できます。

1 つの物理ウィンドウには、1 つの論理ウィンドウのみを割り当てることができます。物理ウィンドウは論理ウィンドウの名前を引き継ぐので、物理ウィンドウに影響を及ぼすコマンド (例えば WINDOW SIZE コマンドなど) を入力するときは、割り当てられている論理ウィンドウの名前を指定して、物理ウィンドウを識別します。物理ウィンドウは閉じる (表示しない) ことができますが、常に 1 つ以上の物理ウィンドウが開かれている必要があります。

下記の Debug Tool セッション・パネルは、3 つの物理ウィンドウを含んでいるデフォルトのレイアウトを示しています。1 つはモニター・ウィンドウ  1  用、2 番目はソース・ウィンドウ  2  用、および 3 番目はログ・ウィンドウ  3  用です。

COBOL    LOCATION: DTAM01 :> 109.1                                             
Command ===>                                                   Scroll ===> PAGE
MONITOR -+----1----+----2----+----3----+----4----+----5----+----6- LINE: 1 OF 7
**************************** TOP OF MONITOR **********************************
                                  ----+----1----+----2----+----3----+----4---- 
0001  1 NUM1                      0000000005                                   
0002  2 NUM4                     '1111'           1                      
0003  3 WK-LONG-FIELD-2          '123456790 223456790 323456790 423456790 5234 
0004                              56790 623456790 723456790 8234567890 9234567 
0005                              90 023456790 123456790 223456790 323456790 4 
0006                              23456790 5234567890 623456790 723456790 8234 
SOURCE: DTAM01 ---1----+----2----+----3----+----4----+----5--- LINE: 107 OF 196
     107       *    SINGLE DATAITEM IN A STRUCTURE                            .
     108       *------------------------------------------------------------- .
     109            ADD 1 TO AA-NUM1       2                                  .
     110                                                                      .
     111       *------------------------------------------------------------- .
     112       *    SINGLE DATAITEM IN A STRUCTURE - QUALIFIED                .
LOG 0----+----1----+----2----+----3----+----4----+----5----+---- LINE: 40 OF 43
0040  MONITOR                                                                  
0041    LIST NUM4 ;                                                            
0042  MONITOR                                    3                  
0043    LIST WK-LONG-FIELD-2 ;

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

セッション・パネル・ヘッダー

Debug Tool セッション・パネルの最初の数行は、コマンド行と、デバッグするプログラムに関して情報を表示するヘッダー・フィールドです。

以下は、C プログラムの場合のヘッダー例を示しています。

 C  1        LOCATION: MYID.SOURCE(TSTPGM1):>248            2 
Command ===>   3                                     SCROLL ===> PAGE    4 
                           5 

以下は COBOL プログラムの場合のヘッダー例を示しています。

COBOL   1             LOCATION:  XYZPROG::>SUBR:>118    2 
Command ===>   3                                     SCROLL ===> PAGE    4 
                           5 

·
·
·

ヘッダー・フィールドの説明は次のとおりです。

 1  アセンブル、C、COBOL、NL COBOL、逆アセンブリー、または PL/I
現行のプログラム言語の名前です。この言語は、必ずしもソース・ウィンドウに表示されたコードのプログラム言語を示しているとは限りません。 このフィールドに表示される言語によって、コマンドの入力時に従わなければならない構文規則が決定されます。
注:
  1. Debug Tool は、C と C++ プログラムとを区別していません。ソース・ウィンドウに C++ プログラムがあっても、このフィールドには C のみが表示されます。
  2. NL COBOL は、非言語環境プログラムの COBOL を示すために使用されます。
 2  LOCATION
プログラム・ユニット名および実行が中断されているステートメントで、形式は通常 compile unit:>nnnnnn です。

上記の C の例では、MYID.SOURCE(TSTPGM1) の実行が行 248 で中断されています。

上記の COBOL の例では、XYZPROG の実行が XYZPROG::>SUBR:>118、すなわちサブルーチン SUBR の行 118 で中断されています。

記録されたステートメントを再生する場合、「LOCATION」という語は、PBK<LOC または PBK>LOC により置き換えられます。<> のシンボルは、記録されたステートメントが逆方向 (<) それとも順方向 (>) で再生されているのかを示します。

Enterprise PL/I コンパイラーまたは C/C++ コンパイラーを使用する場合は、コンパイル単位名が、ソースの全体のデータ・セット名になります。CU 名が長形式で表示されるように、LONGCUNAMEON (デフォルト) に設定されている場合、名前が切り捨てられることがあります。 ご使用の PL/I プログラムが以下のコンパイラーによってコンパイルされたものであり、しかもそれが以下の環境で実行される場合は、package ステートメントまたはメイン・プロシージャーの名前が表示されます。

 3  コマンド (COMMAND)
次の Debug Tool コマンドの入力域です。ここ には、有効な Debug Tool コマンドであれば何でも入力可能です。
 4  スクロール (SCROLL)
移動量を指定しないで SCROLL コマンドを入力したときにスクロールさせる行数または桁数です。このフィールドを隠すには、SET SCROLL DISPLAY OFF コマンドを入力します。スクロール移動量を変更するには、SET DEFAULT SCROLL コマンドを使用します。

このフィールドの値は、SCROLL UPSCROLL DOWNSCROLL LEFT、および SCROLL RIGHT の各スクロール・コマンドに適用されるオペランドです。 表 16 に、すべてのスクロール・コマンドをリストします。

表 16. スクロール・コマンド
コマンド 説明
n n 行ずつスクロールします。
HALF ページの半分だけスクロールします。
PAGE 1 ページ全体をスクロールします。
TOP データの上部にスクロールします。
BOTTOM データの下部にスクロールします。
MAX データの限界までスクロールします。
LEFT x x 文字分、左へスクロールします。
RIGHT x x 文字分、右へスクロールします。
CURSOR カーソルの位置。
TO x x までスクロールします。ここで x は整数です。
 5  メッセージ領域
コマンド行のすぐ下のスペースに通知メッセージまたはエラー・メッセージが表示されます。

ソース・ウィンドウ

 1 SOURCE: MULTCU ---1----+----2----+----3----+----4----+----5----+ LINE: 70 OF 85
       70        PROCEDURE DIVISION.                                           .
       71       ************************************************************** .
       72       * THIS IS THE MAIN PROGRAM AREA.  This program only displays   .
       73       *         text. 3                                              .
       74       ************************************************************** .

   2   75            DISPLAY "MULTCU COBOL SOURCE STARTED." UPON CONSOLE.      .
       76            MOVE 25 TO PROGRAM-USHORT-BIN.                            .
       77            MOVE -25 TO PROGRAM-SSHORT-BIN.                           . 4 
       78            PERFORM TEST-900.                                         .
       79            PERFORM TEST-1000.                                        .
       80            DISPLAY "MULTCU COBOL SOURCE ENDED." UPON CONSOLE.        .

ソース・ウィンドウには、ソース・ファイルまたはソース・リストが表示されます。ソース・ウィンドウは次に説明する 4 つの部分で構成されています。

 1  ヘッダー域
そのウィンドウを識別するとともに、コンパイル単位名と、ソースまたはリストでの現在位置を示します。
 2  接頭部域
ソース・ウィンドウの左端の 8 桁の部分です。プログラムのステートメントを参照する際に使用できるステートメント番号 または行番号を示します。接頭部域を接頭部コマンド ATCLEARENABLEDISABLEQUERY、および SHOW で使用して、ブレークポイントの設定、表示、除去を行うことができます。
 3  ソース表示域
現在対象になっているプログラム単位のソース・コード (C および C++ プログラムの場合)、ソース・リスト (COBOL または PL/I プログラムの場合)、疑似アセンブラー・リスト (アセンブラー・プログラムの場合)、あるいは逆アセンブリー表示 (デバッグ情報のないプログラムの場合) が表示されます。 現行の実行可能ステートメントがソース表示域に表示される場合は強調表示されます。
 4  接尾部域
Debug Tool が頻度カウントを表示するのに使用する画面右側の 狭い可変長のカラムです。このカラムの最大幅は、表示する最大カウントの幅と同じです。

接尾部域は任意に選択できます。接尾部域を表示するには、SET SUFFIX ON と入力します。接尾部域を隠す 場合は SET SUFFIX OFF と入力します。また、プロファイル設定パネルのソース・リスト接頭部 フィールドで オンまたはオフに設定することもできます。

各ウィンドウで表示されるラベル付きのヘッダー行には、目盛りと 行カウンターが示されます。ウィンドウを左右にスクロールすると目盛りもスクロールしますので、ウィンドウに表示される桁が示されます。行カウンターには、ウィンドウの最上部の行番号とそのウィンドウ内の 行の合計数が示されます。ウィンドウを上下にスクロールすると、行カウンターはそれに応じて、現在その ウィンドウで表示されている最上部の行番号を示します。

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

モニター・ウィンドウ

モニター・ウィンドウには、SET AUTOMONITOR コマンドまたは MONITOR コマンドで選択した変数の名前と値が表示されます。

下図に、デフォルトのモニター・ウィンドウと、モニター・ウィンドウの各部分を示します。

COBOL    LOCATION: DTAM01 :> 109.1                                             
Command ===>                                                   Scroll ===> PAGE
MONITOR -+----1----+----2----+----3----+----4----+----5----+----6- LINE: 1 OF 7
******************************** TOP OF MONITOR *******************************
                                  -----+----1----+----2----+- 1 --3----+----4--
0001  1 NUM1                      0000000005                                   
0002  2 NUM4                     '1111'           2                             
0003  3 WK-LONG-FIELD-2          '123456790 223456790 323456790 423456790 5234 
0004       3                      56790 623456790 723456790 8234567890 9234567 
0005                              90 023456790 123456790 223456790 323456790 4 
0006  4                           23456790 5234567890 623456790 723456790 8234 
0007  4 HEX-NUM1                X'ABCD 1234'
 1 
モニター値目盛り。これは、モニター値域の桁位置を測る際の参考になります。
 2 
Debug Tool が変数の値を表示するモニター値域。Debug Tool は、表示をモニター・ウィンドウの表示可能域の幅いっぱいまで右に広げます。
 3 
Debug Tool が変数の名前を表示するモニター名域。
 4 
Debug Tool が変数に割り当てた参照番号を表示するモニター参照番号域。

MONITOR LISTMONITOR QUERYMONITOR DESCRIBESET AUTOMONITOR の各コマンドを入力した場合、Debug Tool は出力をモニター・ウィンドウに表示します。 このウィンドウが開いていない場合、MONITOR あるいは SET AUTOMONITOR コマンドを入力すると Debug Tool がこのウィンドウを開きます。

MONITOR コマンドは無制限の量の出力を生成でき、記憶装置の容量によって制約されるだけですが、モニター・ウィンドウで 表示できるのは、出力の最大 1000 行までのスクロール可能な行です。

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

ログ・ウィンドウ

 LOG 0----+----1----+----2----+----3----+----4----+----5----+----6 LINE: 6 OF 14
 0007  MONITOR
 0008    LIST PROGRAM-USHORT-BIN ;
 0009  MONITOR
 0010    LIST PROGRAM-SSHORT-BIN ;
 0011  AT 75 ;
 0012  AT 77 ;
 0013  AT 79 ;
 0014  GO ;

ログ・ウィンドウには、ユーザーと Debug Tool との対話が記録 され、表示されます。

デバッグ・セッションの始めに、以下のファイルのいずれかを指定していると、 これらのファイルから出されたコマンドの始めと終わりを示す メッセージがログ・ウィンドウに表示されます。

グローバル設定ファイルが存在する場合、そのグローバル設定ファイルのデータ・セット名 が表示されます。

次のコマンドはログ・ウィンドウに記録されません。

あるファイルに関して SET INTERCEPT ON が有効な場合、そのファイルの出力もログ・ウィンドウに表示されます。

オプションで SET ECHO OFF を指定することにより、ログから STEP および GO コマンドを除外することもできます。

SCROLL コマンドや WINDOW コマンドのように、IMMEDIATE とともに使用できるコマンドは、ログ・ウィンドウから除外されます。

デフォルトによって、ログ・ウィンドウには 1000 行が表示用に確保 されます。デフォルト値は、以下のいずれかの方法で変更することができます。

最大行数は、使用可能なストレージのサイズによって決まります。

各ウィンドウで表示されるラベル付きのヘッダー行には、目盛りと 行カウンターが示されます。ウィンドウを左右にスクロールすると目盛りもスクロールしますので、ウィンドウに表示される桁が示されます。行カウンターには、ウィンドウの最上部の行番号とそのウィンドウ内の 行の合計数が示されます。ウィンドウを上下にスクロールすると、行カウンターはそれに応じて、現在その ウィンドウで表示されている最上部の行番号を示します。

メモリー・ウィンドウ

メモリー・ウィンドウには、メモリーの内容が表示されます。下図に、メモリー・ウィンドウの各部分を示します。

 MEMORY---1----+----2----+----3----+----4----+----5----+----6----+----7----+-  1   
 History:  24702630         2505A000 
   2      
 Base address:  265B1018  Amode: 31
 +00000 265B1018   11C3D6C2 D6D34040 4011D3D6 C3C1E3C9   | .COBOL   .LOCATI | 
 +00010 265B1028   D6D57A12 D7D9D6C7 F1407A6E 40F4F44B   | ON:.PROG1 :> 44. | 
 +00020 265B1038   F1404040 40404040 40404040 40404040   | 1                | 
 +00030 265B1048   40404040 40404040 40404040 40404040   |        6         | 
 +00040 265B1058   40404040 40404040 40404040 40404040   |                  | 
 +00050 265B1068   11C39694 94819584 117E7E7E 6E009389   | .Command.===>.li | 
 +00060 265B1078   A2A340A2 A3969981 87854DA2 A399F16B   | st storage(str1, | 
 +00070 265B1088   F3F25D40 40404040 40404040 40404040   | 32)              | 
   3           4                      5 
 1  ヘッダー域
ヘッダー域はウィンドウを識別し、目盛りを含んでいます。
 2 情報域
情報域には、最大 8 つの基底アドレスのメモリー・ヒストリーが表示されます。 情報域には、アドレス・モードと最大 8 つの固有の基底アドレスも表示されます。

以下のセクションは、まとめてメモリー・ダンプ域と呼ばれます。

 3  オフセット列
オフセット列には、メモリー内のデータ行の、基底アドレスからのオフセットが表示されます。
 4  アドレス列
アドレス列には、メモリー内のデータ行にある、開始アドレスの下位の 32 ビットが表示されます。
 5  16 進データ列
16 進データ域には、データが 16 進形式で表示されます。各行には、16 バイトのメモリーが 4 つの 4 バイト・グループとして表示されます。
 6  文字データ列
文字データ域には、データが文字フォーマットで表示されます。1 行につき 16 バイトのメモリーが表示されます。

メモリー・ウィンドウに表示できる最大行数は、ウィンドウのサイズまでに制限されます。SCROLL DOWN および SCROLL UP コマンドを使用して、メモリーの続きを表示できます。

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

設定ファイルの作成

Debug Tool の外観または動作に対する設定値がある場合は、 それらのオプションを設定ファイルに設定することができます。 セッション・パネルのウィンドウのレイアウトを変更したり、PF キーに特定のアクション を設定したり、あるいは、セッション・パネルで使用するカラーを変更することができます。カスタマイズした設定値の設定ファイルへの保存に、設定ファイルを指定する方法、 および Debug Tool にその設定ファイルを使用させる方法についての説明があります。

サイトにすべてのユーザーに使用させる設定値がある場合、システム管理者は、 これらの設定値をグローバル設定ファイルに設定することができます。 Debug Tool は、開始するときに、以下のステップを実行します。

  1. グローバル設定ファイルがないか検査し、グローバル設定ファイルの中に指定されたコマンド があれば実行する。
  2. 設定ファイルを指定した場合は、その設定ファイルを探し、その設定ファイルの中にコマンドがあれば実行する。
  3. コマンド・ファイルを指定した場合は、そのコマンド・ファイルを探し、 そのコマンド・ファイルの中にコマンドがあれば実行する。

Debug Tool がこれらのファイルを処理する順序のために、設定ファイルおよびコマンド・ファイルに 指定した設定により、グローバル設定ファイルの設定がオーバーライドされる可能性があります。

ソースの表示

Debug Tool は、ユーザーがプログラムをどのように準備したかに応じて、ソース・ファイル、リスト・ファイル、または分離デバッグ・ファイルを使用して、ソース・ウィンドウにソースを表示します。

Debug Tool を開始したとき、ソースが表示されない場合は、ソースを検出して表示する方法について、ソース・ウィンドウに表示するファイルの変更を参照してください。

デバッグ・データがない場合は、SET DISASSEMBLY コマンドを入力することにより逆アセンブル・コードを表示できます。

ご使用のプログラムに DB2® または CICS® コーディングが入っている場合、別ファイルを使用する必要が生じる場合があります。詳細は、DB2 プログラムの準備または CICS プログラムの準備を参照してください。

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

ソース・ウィンドウに表示するファイルの変更

ここでは、ソース・ウィンドウに表示されるファイルを変更する方法をいくつか説明します。ここでは、表示したいソース・ファイル、リスト・ファイル、または分離デバッグ・ファイルの名前が既に分かっていることを想定しています。ファイルの名前が分からない場合は、ファイル名の見つけ方について、Debug Tool に認識されるコンパイル単位のリストの表示を参照してください。

ソース・ウィンドウに表示されるファイルを変更する前に、付録B. Debug Tool によるソース、リスト、または 分離デバッグ・ファイル の検索方法を読んで、Debug Tool がソース・ファイル、リスト・ファイル、および分離デバッグ・ファイルを見つける方法を確実に理解しておいてください。

ソース・ウィンドウに表示されるファイルを変更するには、以下のいずれかのオプションを選択します。

DEBUG(FORMAT(DWARF)) コンパイラー・オプションを使用してコンパイルされた C++ プログラムについて、このトピックでは、ソース・ファイルの場所の指定方法を説明します。DEBUG(FORMAT(DWARF)) コンパイラー・オプションを使用してプログラムをコンパイルした場合、.dbg ファイルへのアクセスも必要になります。 このファイルを移動または名前変更する場合は、その新しい名前または場所を EQADEBUG DD ステートメントを使用して指定するか、EQAUEDAT ユーザー出口をコーディングしてください。UNIX® システム・サービスの HFS ファイル・システムを使用している場合は、.dbg ファイルを移動できません。

セッション・パネルでのコマンドの入力

コマンドの入力またはセッション・パネルの表示内容の修正は、図 1、および 図 2 に示すように、複数の区域で行うことができます。

図 1. Debug Tool セッション・パネルでのログ・ウィンドウの表示
 C        LOCATION: MYID.SOURCE(ICFSSCU1) :> 89
 Command ===>  1                                         Scroll ===> PAGE  2 
 MONITOR --+----1----+----2----+----3----+----4----+----5----+----6 LINE: 1 OF 2
 ******************************* TOP OF MONITOR ********************************
                                    ----+----1----+----2----+----3----+----4----
 0001  1 VARBL1                     10
 0002  2 VARBL2                     20
 ****************************** BOTTOM OF MONITOR ******************************
 SOURCE: ICFSSCU1 - 3 --+----2----+----3----+----4----+----5----+ LINE: 81 OF 96
       81  main()                                                              .
       82  {                                                                   .
       83     int VARBL1 = 10;                                                 .
   4   84     int VARBL2 = 20;                                                .
       85     int R = 1;                                                       .
       86                                        5                            .
       87     printf("--- IBFSSCC1 : BEGIN¥n");                                .
       88     do {                                                             .
       89        VARBL1++;                                                     .
       90        printf("INSIDE PERFORM¥n");                                   .
       91        VARBL2 = VARBL2 - 2;                                          .
       92        R++;                                                          .
 LOG  6 --+----1----+----2----+----3----+----4----+----5----+----6 LINE: 7 OF 15
 0007  STEP ;
 0008  AT 87 ;
 0009  MONITOR
 0010    LIST VARBL1 ;
 0011  MONITOR
 0012    LIST VARBL2 ;
 0013  GO ;               7 
 0014  STEP ;
 0015  STEP ;
図 2. Debug Tool セッション・パネルでのメモリー・ウィンドウの表示
 COBOL    LOCATION: PROG1 :> 44.1                                               
 Command ===>      1                                             Scroll ===> CSR  2 
 MONITOR -+----1----+----2----+----3----+----4----+----5----+----6- LINE: 1 OF 2
 ******************************* TOP OF MONITOR ********************************
                                   ----+----1----+----2----+----3----+----4---- 
 0001  1 STR1                     'ONE  '                                      
 0002  2 STR3                     'THREE'                                      
 ****************************** BOTTOM OF MONITOR ******************************
 SOURCE: PROG1 - 3 -1----+----2----+----3----+----4----+----5----+ LINE: 43 OF 53
       43            MOVE "ONE" TO STR1. MOVE "TWO" TO STR2. MOVE "THREE" TO S .
       44            MOVE "FOUR" TO STR4. MOVE "FIVE" TO STR5.                 .
       45            PERFORM UNTIL R = 9                                       .
  4    46              MOVE "TOP" TO STR1 MOVE "BEG" TO STR2 MOVE "UP" TO STR3 .
       47              ADD 1 TO VARBL1                                         .
       48              SUBTRACT 2 FROM VARBL2               5                  .
       49              ADD 1 TO R                                              .
       50              MOVE "BOT" TO STR1 MOVE "END" TO STR2 MOVE "DOW" TO STR .
       51            END-PERFORM.                                              .
       52            MOVE "DONE" TO STR1. MOVE "END" TO STR2. MOVE "FIN" TO ST .
       53            STOP RUN.                                                 .
 ****************************** BOTTOM OF SOURCE *******************************
 MEMOR 6 -+----2----+----3----+----4----+----5----+----6----+----7----+----8----+
 History: 329D47DA         329D65CC         329D88AB         329D8000           
          329D90E8                    8                                           
 Base address: 329D90E8 Amode: 31                                               
 +00000 329D90E8   D6D5C540 40000000 E3E6D640 40000000    | ONE  ...TWO  ... |  
 +00010 329D90F8   E3C8D9C5 C5000000 00000000 00000000    | THREE........... |  
 +00020 329D9108   00000000 00000000 00000000 00000000    | ................ |  
 +00030 329D9118   00000000 00000000 00000000 00000000    | ................ |  
 +00040 329D9128   00000000 00000000 00000000 00000000    | ................ |  
 +00050 329D9138   00000000 00000000 00000000 00000000    | ................ |  
 +00060 329D9148   00000000 00000000 00000000 00000000    | ................ |  
 +00070 329D9158   00000000 00000000 00000000 00000000    | ................ |  
 PF  1:ZOOM MEM   2:STEP       3:QUIT       4:SWAP       5:MEMORY     6:BREAK   
 PF  7:UP         8:DOWN       9:GO        10:ZOOM SRC  11:ZOOM LOG  12:RETRIEVE
注:
図 2 は、再定義された PF キーを示しています。PF キーを再定義したい場合は、PF キーの定義を参照してください。
 1  コマンド行
コマンド行には、有効な Debug Tool コマンドであればどのコマンド でも入力できます。
 2  スクロール域
デフォルトのスクロール量は、現在表示されている値の上に希望の値を タイプして、再定義することができます。
 3  コンパイル単位名域
現在表示されている値の上に、必要な修飾名をタイプして、修飾名を 変更することができます。例えば、ソース・ウィンドウのヘッダーに示されているような現行の修飾名 ICFSSCU1ICFSSCU2 に変更したい場合には、ICFSSCU2ICFSSCU1 に上書きし、Enter を押してください。
 4  接頭部域
ソース・ウィンドウの左端にある接頭部域 には、Debug Tool の接頭部域コマンドのみ入力可能です。
 5  ソース・ウィンドウ
ソース・ウィンドウの任意の行を変更して、コマンド行に 置くことができます。
 6  ウィンドウ ID 域
現在表示されている ウィンドウの名前の上に、表示させたいウィンドウの名前を タイプして、ウィンドウ構成を変更することができます。
 7  ログ・ウィンドウ
ログ内の任意の行を変更し、これを Debug Tool にコマンド行に 置かせることができます。
 8  メモリー・ウィンドウ
メモリーを変更したり、または新規にメモリー基底アドレスを指定したりすることができます。このウィンドウは、デフォルトでは表示されません。このウィンドウを表示するには、WINDOW SWAP MEMORY LOG コマンド、WINDOW OPEN MEMORY コマンド、または WINDOW ZOOM MEMORY コマンドを入力する必要があります。

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

Debug Tool がセッション・パネルからコマンドを受け入れる順序

セッション・パネルの複数の有効な入力域にコマンドを入力して Enter を 押すと、入力域は次の優先順位に従って処理されます。

  1. 接頭部域
  2. コマンド行
  3. コンパイル単位名域
  4. スクロール域
  5. ウィンドウ ID 域
  6. ソース/ログ・ウィンドウ
  7. メモリー・ウィンドウ

セッション・パネル・コマンド行の使用

コマンド・フィールドにはどの Debug Tool コマンドでも入力する ことができます。どの TSO コマンドでも、接頭部として SYSTEM または TSO を付けて入力することができます。コマンドの最大長は、SBCS 文字では 48、DBCS 文字 では 23 です。

長いコマンドを入力する場合、Debug Tool は、コマンド継続文字 SBCS ハイフン (-) を提供しています。現行のプログラム言語が C および C++ の場合、継続文字として円記号 ( ¥ ) も使用できます。

Debug Tool では、コマンドが完結しない場合、自動継続もできます。例えば、左中括弧 ({) で始まったコマンドに対応する右中括弧 (}) がない場合です。コマンドを継続する必要がある場合には、Debug Tool の MORE ===> プロンプトを使用すると、コマンド行がもう一行あることになります。コマンドを完成するまで、継続文字を使用して追加のコマンド行を 要求し続けることができます。

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

システム・コマンドの発行

Debug Tool セッション中でも、SYSTEM コマンドを使用して、基本オペレーティング・システムにアクセス可能です。 SYSTEM コマンドに続くストリングは、オペレーティング・システムに渡されます。TSO 環境では TSO と通信できます。例えば、デバッグ・セッション中に TSO カタログ・リストを見たい場合は、SYSTEM LISTC; と入力します。

システム・コマンドを入力するときは、以下のことに従わなければなりません。

CICS の場合のみ: SYSTEM コマンドはサポートされていません。

TSO は、SYSTEM コマンドの同義語です。TSO コマンドの短縮形は許可されません。

特定の行またはステートメントでの接頭部コマンドの入力

接頭部コマンド と呼ばれる特定のコマンドは、ソース・ウィンドウまたはモニター・ウィンドウ内の固有の行の接頭部域に入力し、コマンドがそれらの行にのみ影響を及ぼすようにすることができます。例えば、行 8 の接頭部域に AT コマンドを入力し、Enter を押すと、Debug Tool は行 8 だけにステートメント・ブレークポイントを設定します。

以下の接頭部コマンドは、ソース・ウィンドウの接頭部域に入力できます。

以下の接頭部コマンドは、自動モニター・セクションも含め、モニター・ウィンドウの接頭部域に入力できます。

ソース・ウィンドウに接頭部コマンドを入力するには、以下のステップを実行します。

  1. 変更したいコードの行が表示されるまで、ソース・ウィンドウをスクロールします。
  2. 変更したい行の接頭部域まで、カーソルを移動します。
  3. 適切な接頭部コマンドを入力します。
  4. 行に複数のステートメントまたは verb がある場合、ステートメントまたは verb の相対位置を示す番号を入力することにより、変更したいステートメントまたは verb を指示できます。例えば、行に 3 つのステートメントがあり、3 番目のステートメントにブレークポイントを設定したければ、AT 接頭部コマンドに続けて 3 と入力します。 結果としての接頭部コマンドは、AT 3 になります。
  5. 変更したい行が複数ある場合は、ステップ 3 に戻ります。
  6. Enter を押します。Debug Tool はユーザーが入力したコマンドを、そのコマンドが入力された行に対して実行します。

モニター・ウィンドウに接頭部コマンドを入力するには、以下のステップを実行します。

  1. 変更したい行が表示されるまで、モニター・ウィンドウをスクロールします。
  2. 変更したい行の接頭部域まで、カーソルを移動します。
  3. 適切な接頭部コマンドを入力します。
  4. 変更したい行が複数ある場合は、ステップ 3 に戻ります。
  5. Enter を押します。Debug Tool はユーザーが入力したコマンドを、そのコマンドが入力された行に対して実行します。

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

メモリー・ウィンドウでの複数のコマンドの入力

メモリー・ウィンドウに複数のコマンドおよび変更を入力できます。Debug Tool は、次のリストで説明するように、ユーザー入力をメモリー・ウィンドウの一番上から順に、1 行ずつ処理します。

  1. ヒストリー入力域。処理は、無効な入力の位置で停止するか (エラー・メッセージが表示されます)、最初の「G」または「R」コマンドの後で停止します。 メモリー・ウィンドウは最新表示され、ユーザーがメモリー・ウィンドウに入力した残りのコマンドおよび変更は無視されます。
  2. 基底アドレス。処理は、無効な入力の位置で停止するか (エラー・メッセージが表示されます)、有効な入力の後で、または最初の「G」コマンドの後で停止します。 メモリー・ウィンドウは最新表示され、ユーザーがメモリー・ウィンドウに入力した残りのコマンドおよび変更は無視されます。
  3. アドレス列。処理は、無効な入力の位置で停止するか (エラー・メッセージが表示されます)、有効な入力の後で、または最初の「G」コマンドの後で停止します。 メモリー・ウィンドウは最新表示され、ユーザーがメモリー・ウィンドウに入力した残りのコマンドおよび変更は無視されます。
  4. 16 進データ域。処理は、無効な入力の位置で停止するか (エラー・メッセージが表示されます)、有効な入力の後で、または最初の「G」コマンドの後で停止します。 無効な変更または「G」コマンドの前に Debug Tool が検出した有効な変更は、処理されます。メモリー・ウィンドウは最新表示され、ユーザーがメモリー・ウィンドウに入力した残りのコマンドまたは変更は無視されます。

カーソル移動に影響されるコマンドの使用

コマンドのなかには、カーソルの位置に依存するものがあります。これらのコマンドはカーソル移動に影響される コマンドと呼ばれ、キーワード CURSOR を含むすべてのコマンド (AT CURSORDESCRIBE CURSORFIND CURSORLIST CURSORSCROLL...CURSORTRIGGER AT CURSORWINDOW...CURSOR) が含まれます。

カーソル移動に影響されるコマンドを入力するためには、コマンド行に コマンドを入力し、ソース・ウィンドウ内のそのコマンドを機能させる 位置 (例: ステートメントの先頭または verb) にカーソルを位置付け、Enter キーを押してください。

カーソル移動に影響されるコマンドを PF キーに割り当てて使用することも 可能です。

注:
カーソル移動に影響されるコマンドと CURSOR コマンドを混同しないでください。CURSOR コマンドは、最後に保存された位置にカーソルを戻します。

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

プログラム機能 (PF) キーによるコマンドの入力

カーソル移動に影響されるコマンドは、その他のフルスクリーン・タスクと同様に、PF キーにコマンドを割り当てることにより、迅速に発行することができます。この方法で、WINDOW CLOSELISTCURSORSCROLL TODESCRIBE ATTRIBUTESRETRIEVEFINDWINDOW SIZE、およびスクロール・コマンド (SCROLL UPDOWNLEFTRIGHT) を発行することができます。PF キーの使用で、タスクの実行が便利かつ容易になります。

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

初期 PF キー設定

次の表は初期の PF キー設定を示しています。

PF キー ラベル 定義 使用法
PF1 ? ? Debug Tool コマンド構文に関するオンライン・ヘルプの表示
PF2 STEP STEP ユーザー・プログラムの実行またはステップスルー
PF3 QUIT QUIT フルスクリーン・モード・デバッグ・セッションの終了
PF4 LIST LIST Debug Tool に認識されるコンパイル単位のリストの表示
PF4 LIST LIST variable_name 変数の値を表示およびモニターする
PF5 FIND IMMEDIATE FIND ウィンドウ内のストリングの検出
PF6 AT/CLEAR AT TOGGLE CURSOR 行でユーザー・プログラムを停止するブレークポイントの設定
PF7 UP IMMEDIATE UP 物理ウィンドウのスクロール
PF8 DOWN IMMEDIATE DOWN 物理ウィンドウのスクロール
PF9 GO GO ユーザー・プログラムの実行またはステップスルー
PF10 ZOOM IMMEDIATE ZOOM 画面全域までのウィンドウのズーミング
PF11 ZOOM LOG IMMEDIATE ZOOM LOG 画面全域までのウィンドウのズーミング
PF12 RETRIEVE IMMEDIATE RETRIEVE 直前のコマンドの検索

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

直前のコマンドの検索

最後に入力したコマンドを検索するには、PF12 (RETRIEVE) を 入力します。検索されたコマンドはコマンド行に表示されます。そのコマンドを変更し、Enter を押すと、変更したコマンドを発行する ことができます。

それ以前のコマンドを次々に表示させたい場合は、PF12 を 押すと、各コマンドが順に検索されます。検索したコマンドがコマンド行に対して長過ぎる場合は、最後の行のみが表示 されます。

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

ログ・ウィンドウおよびソース・ウィンドウの行からのコマンドの構成

ログ・ウィンドウ内およびソース・ウィンドウ内の行を使用して、新しいコマンドを構成できます。

ログ・ウィンドウまたはソース・ウィンドウ内の行からコマンドを構成するには、以下のステップを実行します。

  1. 対象の行まで、カーソルを移動します。
  2. コマンドに組み込みたい 1 つ以上の行を変更します。例えば、コメントの文字を削除します。
  3. Enter を押します。Debug Tool は入力行 (単数または複数) をコマンド行に表示します。 行がコマンド行に収まらない場合、Debug Tool はそれまでに入力されたコマンドをポップアップ・ウィンドウに表示します。最後の行の末尾ブランクは除去されます。ポップアップ・ウィンドウを拡大したい場合は、カーソルをそのウィンドウの 下に位置付け、Enter を押します。
  4. コマンドが不完全な場合は、コマンドを変更します。
  5. Enter を押して、コマンドを実行します。

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

Debug Tool ウィンドウのナビゲート

CURSOR コマンドとスクロール・コマンドを使用すると、どのウィンドウ内でもナビゲートができます。スクロール・コマンドには、SCROLL UPDOWNLEFTRIGHTTONEXTTOP、および BOTTOM があります。 また、FIND コマンドを使用して、文字ストリングを探索すると、指定されたストリングまで自動的にスクロールされます。

これらのいずれかのコマンドがどのウィンドウに対して影響するのかは、いくつかの要因のうちの 1 つによって決まります。コマンドの入力時にウィンドウ名 (LOGMEMORYMONITOR、または SOURCE) を指定した場合、そのウィンドウが処理対象になります。カーソル指向のコマンドの場合には、そのカーソルを含んでいるウィンドウに コマンドが作用します。ウィンドウ名を指定せず、またカーソルがどのウィンドウにも入っていない場合 には、コマンドが影響するウィンドウは Profile Settings パネルのデフォルト・ ウィンドウおよびデフォルトのスクロール量 の設定値に よって決まります。

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

ウィンドウ間でのカーソルの移動

モニター・ウィンドウ、ソース・ウィンドウまたはログ・ウィンドウから コマンド行にカーソルを迅速に移動させたり戻したりするには、CURSOR コマンドを使用してください。このコマンドおよびその他のいくつかのカーソル指向のコマンドは、PF キーに 割り当てると非常に効果的に使用することができます。CURSOR コマンドを PF キーに割り当てた後は、その PF キーを押してカーソルを移動させます。CURSOR コマンドを入力したときにカーソルがコマンド行にない場合は、カーソルは コマンド行に移動します。カーソルを直前の位置に戻すには、再度 CURSOR PF キーを押します。

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

メモリー・ウィンドウとログ・ウィンドウの切り替え

Debug Tool には 4 つの論理ウィンドウがありますが、一度に表示できるのは、最大で 3 つの物理ウィンドウだけです。コマンド行に WINDOW SWAP MEMORY LOG コマンドを入力することにより、メモリー・ウィンドウとログ・ウィンドウを交互に切り替えることができます。物理ウィンドウ内をナビゲートするには、スクロール・コマンドを入力します。

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

物理ウィンドウのスクロール

コマンドまたは PF キーを使用することにより、物理ウィンドウをスクロールすることができます。 どちらの方法でも、コマンドの影響を受ける物理ウィンドウを決めるにあたって、カーソルの配置が重要な役割を演じます。

コマンドを使用して物理ウィンドウをスクロールするには、以下のステップを実行します。

  1. モニター・ウィンドウのモニター値域を左右にスクロールする場合は、SET MONITOR WRAP OFF コマンドを入力します。
  2. スクロール・コマンドをコマンド行に入力します。ただし、Enter キーは押さないでください。以下のスクロール・コマンドをどれでも入力できます。SCROLL LEFTSCROLL RIGHTSCROLL UPSCROLLDOWN。メモリー・ウィンドウ内で左右にスクロールすることはできません。
  3. スクロールしたい物理ウィンドウ、または物理ウィンドウの領域へカーソルを移動します。メモリー・ウィンドウで、カーソルをメモリー・ダンプ域の任意のセクションへ移動します。モニター・ウィンドウで、カーソルをモニター値域へ移動し、その領域を左または右にスクロールします。SET MONITOR WRAP OFF コマンドを入力しなかった場合、スクロール・コマンドはウィンドウ全体をスクロールします。
  4. Enter キーを押します。

ウィンドウまたは領域を左右にスクロールした場合、Debug Tool はウィンドウに表示される列を示すために、ウィンドウまたは領域の目盛りを調整します。 ウィンドウを上下にスクロールすると、行カウンターはそれに応じて、現在そのウィンドウに表示されている最上部の行番号を示します。メモリー・ウィンドウで、上下にスクロールした場合、新しい情報を表示するために、メモリー・ダンプ域のすべてのセクションが調整されます。

スクロールしたい物理ウィンドウを示すために、コマンドを使用して、上記のステップ 23 を結合できます。例えば、モニター・ウィンドウを表示している物理ウィンドウ内で 5 行上へスクロールしたい場合は、SCROLLUP 5 MONITOR というコマンドを入力します。

PF キーを使用して物理ウィンドウをスクロールするには、以下のステップを実行します。

  1. スクロールしたい物理ウィンドウ、またはスクロール可能域へカーソルを移動します。スクロール可能域には、メモリー・ウィンドウのメモリー・ダンプ域が含まれます。
  2. PF7 (UP) キーを押してスクロールアップするか、PF8 (DOWN) キーを押してスクロールダウンします。 スクロールする行数は、「Default scroll amount」の設定値によって決まります。

特定の物理ウィンドウへカーソルを移動しなかった場合は、デフォルトの論理ウィンドウがスクロールします。どの論理ウィンドウがデフォルトの論理ウィンドウであるかを知るには、QUERY DEFAULT WINDOW コマンドを入力します。

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

物理ウィンドウの拡大

WINDOW ZOOM コマンドまたは PF キーを使用して、物理ウィンドウを全画面まで拡大できます。物理ウィンドウを WINDOW ZOOM コマンドで拡大するには、WINDOW ZOOM と、その直後に拡大したい物理ウィンドウの名前を入力し、Enter を押します。物理ウィンドウを元のサイズに縮小するには、再び WINDOW ZOOM コマンドを入力します。例えば、モニター・ウィンドウを表示している物理ウィンドウを拡大したい場合は、WINDOW ZOOM コマンドを入力します。その物理ウィンドウのサイズを元のサイズに縮小するには、WINDOW ZOOM コマンドを入力します。

PF キーを使用して物理ウィンドウを拡大するには、拡大したい物理ウィンドウの中へカーソルを移動し、PF10 (ZOOM) キーを押します。 例えば、ソース・ウィンドウを表示している物理ウィンドウを拡大したい場合は、カーソルをソース・ウィンドウ内のどこかへ移動し、PF10 (ZOOM) キーを押します。その物理ウィンドウのサイズを元のサイズに縮小するには、PF10 (ZOOM) キーを押します。

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

特定の行番号へのスクロール

特定の行をウィンドウの最上部に表示するには、ウィンドウ接頭部域 に示されているステートメント番号を指定して SCROLL TO コマンド を使用します。コマンド行に SCROLL TO n (n は 行番号) と入力し、Enter を押します。

例えば、行 345 をウィンドウの最上部に移動させたい場合には、コマンド行に SCROLL TO 345 と入力します。選択されたウィンドウが縦方向にスクロールし、指定の行がそのウィンドウの最上部に表示されます。

ウィンドウ内のストリングの検出

「Source」、「Monitor」、または「Log」ウィンドウの中ではストリングを検索対象とすることができます。検索を開始する場所を指定したり、検索を前向きで行うか後向きで行うかを指定することができます。さらに、ソース・ウィンドウに対して、検索する桁を指定することができます。 検索されるデフォルト・ウィンドウは、SET DEFAULT WINDOW コマンドで指定されたウィンドウか、または「Profile Settings」パネルの「Default window」エントリーで指定されたウィンドウです。検索方向のデフォルトは前向きです。 ソース・ウィンドウの場合、SET FIND BOUNDS コマンドを使用して別の境界セットを指定しない限り、桁のデフォルト境界は 1 から * です。

デフォルトの検索方向を使用してデフォルト・ウィンドウ範囲内のストリングを見つけるには、以下のステップを行います。

  1. 見つけたいストリングを指定して FIND コマンドを入力します。そのストリングは、検索ストリングの構文に記載された規則に必ず従ってください。
  2. Enter キーを押します。

直前に行った検索を繰り返したい場合は、PF5 キーを入力します。

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

Debug Tool によるストリングの検索方法

Debug Tool FIND コマンドは、ISPF FIND コマンドがその検索開始に使用するのと同じ検索開始用規則の多くを使用します。Debug Tool はカーソル位置の後ろの最初の位置で検索を開始します。

最後まで到達すると、Debug Tool は最後まで到達した旨を示すメッセージを表示します。PF5 キーを押して FIND コマンドを繰り返すと、先頭から検索を開始します。

後向きの検索を行っていて先頭に到達すると、Debug Tool は先頭まで到達した旨を示すメッセージを表示します。 PF5 キーを押して FIND コマンドを繰り返すと、最後から検索を開始します。

検索ストリングの構文

このストリングには、どのような文字の組み合わせ、数字、およびシンボルが入っていても構いません。 ただし、このストリングの中に以下のいずれかの文字が入っている場合は、引用符 (") またはアポストロフィ (') で囲む必要があります。

引用符 (") とアポストロフィ (') のどちらを使用するかを判別するには、以下の規則を使用します。

別ウィンドウにある同一ストリングを検索する方法

別ウィンドウにある同一ストリングを検索するには、コマンド ( FIND * window_name) を入力します。

SET MONITOR WRAP OFF が有効である場合のモニター値域内でのストリングの検出

FIND コマンドとストリングを入力し、カーソルをモニター・ウィンドウ内に置きます。Debug Tool は、ストリングが検出されるか、データの終わりに到達するまで、モニター値域のスクロール対象データを含むモニター・ウィンドウ全体を検索します。

別方向にある同一ストリングを検索する方法

別方向にある同一ストリングを検索するには、検索対象ストリングと PREV または NEXT キーワードを指定して FIND * コマンドを入力します。 例えば、以下のコマンドを使用すると、ストリング ("RecordDate") を後向きに検索します。

FIND RecordDate PREV ;

ソース・ウィンドウでの検索境界の指定

Debug Tool によって、ソース・ウィンドウ内の限定された数の桁が検索されるように指定することができます。これは、大容量のソース・ファイルを検索する場合に、一部のテキストが特定の列で構成されている場合に役立つことがあります。 現行の検索、またはすべての検索に対して、使用する境界を指定することができます。 ソースの桁の位置合わせは、元のソース・コードと一致しない場合があります。 FIND コマンドの桁仕様は、元のソース・コードではなく、ソース・ウィンドウに表示されているスケールに関連します。

現在の検索に対して境界を指定するには、FIND コマンドを入力して、検索ストリングと境界を指定します。 例えば、7 桁目から 12 桁目まで、"ABC" を検索するには、以下のコマンドを入力します。

FIND "ABC" 7 12;

8 桁目以降で開始する "VAR1" を検索するには、以下のコマンドを入力します。

FIND "VAR1" 8 *;

1 桁目から開始する "VAR1" を検索するには、以下のコマンドを入力します。

FIND "VAR1" 1;

すべての検索に使用されるデフォルトの境界を指定するには、SET FIND BOUNDS コマンドを入力して、左と右の境界を設定します。 SET FIND BOUNDS コマンドを入力したら、境界を指定せずに FIND コマンドを入力するたびに、Debug Tool は、指定されたストリングをこれらの境界内のみで検索します。 例えば、Debug Tool によって、常に、7 桁目から 52 桁目までのテキストが検索されるように指定するには、以下のコマンドを入力します。

SET FIND BOUNDS 7 52;
このように指定すると、境界を指定せずに FIND コマンドを入力するたびに、Debug Tool は、7 桁目から 52 桁目のみを検索するようになります。

境界をデフォルト設定 (デフォルトは 1 から * まで) にリセットするには、以下のコマンドを入力します。

SET FIND BOUNDS;

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

例: 複雑な検索

別ウィンドウにあるストリングを後向きで検索するには、検索対象ストリング、PREV キーワード、およびそのウィンドウ名を指定して FIND コマンドを入力します。 例えば、以下のコマンドを入力すると、「Log」ウィンドウ内にあるストリング ("EmployeeName") を検索します。

FIND EmployeeName PREV LOG;

例: COBOL 段落名の検索

8 桁目から開始する COBOL 段落名を検索するには、以下のコマンドを入力します。

FIND paraa 8;

Debug Tool によって、8 桁目から開始するストリングのみが検索されます。

12 桁目から 72 桁目までの COBOL 領域 B にある COBOL 段落名への参照を検索するには、以下のコマンドを入力します。

FIND paraa 12 72;

Debug Tool によって、12 桁目から 72 桁目で開始および終了するストリングのみが検索されます。

実行が停止された行の表示

いろいろなソース・ファイルを表示し、スクロールした後、以下のコマンドのいずれかを入力して、実行を停止した場所に戻ることができます。

メモリー・ウィンドウのナビゲート

ここでは、メモリー・ウィンドウを通じて使用可能なナビゲーション援助機能について説明します。これらの機能は、他のウィンドウでは使用できません。

メモリー・ウィンドウの表示

次のいずれかのオプションを実行することにより、メモリー・ウィンドウを表示できます。

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

ヒストリー域を使用したメモリー・ウィンドウ内のナビゲート

新しい MEMORY コマンドを入力するか、G コマンドを使用するたびに、現在の基底アドレスがヒストリー域内で右および下へ移動します。ヒストリー域には、最大で 8 つの基底アドレスを保持できます。ヒストリー域が満杯の場合、新しい基底アドレスを入力すると、Debug Tool は最も古い基底アドレス (ヒストリー域の一番下の右端の部分にあるもの) をヒストリー域から除去し、新しい基底アドレスを左の一番上に配置します。ヒストリー域は、デバッグ・セッション中、持続します。

ヒストリー域を使用してメモリー・ウィンドウ内をナビゲートするには、ヒストリー域でアドレスに G または g コマンドを上書きし、Enter を押します。Debug Tool は新しいアドレスから始まるメモリー・ダンプ・データを表示します。 ヒストリー域をクリアするには、CLEAR MEMORY コマンドを入力します。 ヒストリー域のエントリーは、そのエントリーに R または r コマンドを上書きすることによって除去できます。

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

新しい基底アドレスの指定

以下のいずれかの方法を使用して、新しい基底アドレスを指定できます。

コマンド・ファイルの作成

コマンド・ファイルは、デバッグ・セッションを再生したり、中断したセッションを再開したりする場合に利用すると便利なメソッドです。以下のいずれかの方法を使用して、コマンド・ファイルを作成します。

作成するコマンド・ファイルが、複数の異なるプログラム言語で作成されたアプリケーション・プログラムで使用される可能性がある場合は、 プログラム言語中立 の Debug Tool コマンドを使用するとよいでしょう。 プログラム言語中立のコマンドを作成する際には、以下のガイドラインが役立ちます。

PL/I プログラムでは、コマンド・ファイルの 73 桁目から 80 桁目にシーケンス番号 がある場合、コマンド・ファイルの中の最初のコマンドとして、またはコマンド・ファイル を使用する前に、SET SEQUENCE ON コマンドを入力する必要があります。 このコマンドを入力した後では、Debug Tool は 73 桁目から 80 桁目のデータをコマンドとして 解釈しません。 後で、73 桁目から 80 桁目をコマンドとして Debug Tool に解釈させたい場合は、コマンド SET SEQUENCE OFF を入力してください。

C および C++ プログラムの場合、ブロックを参照するコマンドを使用するときは、同じプログラムが ISD または DWARF コンパイラー・オプションのいずれかでコンパイルされる場合、ブロック名が異なる場合があります。使用するプログラムが ISD コンパイラー・オプションでコンパイルされる場合、Debug Tool によってブロック名が順次方式で割り当てられます。 使用するプログラムが DWARF コンパイラー・オプションによってコンパイルされる場合、Debug Tool によってブロック名が非順次方式で割り当てられます。 このため、ブロック名は異なる可能性があります。 コンパイラー・オプションを切り替える場合は、コマンド・ファイル内で使用するコマンドのブロック名を確認してください。

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

ログ・ファイルへのデバッグ・セッションの記録

Debug Tool は、ユーザーのコマンドとそれにより生成された出力を セッション・ログ・ファイルに記録することができます。これにより、セッションを記録しておいて、その ファイルを参照してセッションの計画を分析することができます。また、ログ・ファイルを基本コマンド・ファイルとして指定して、後の セッションでコマンド入力ファイルとして使用することもできます。この方法は、デバッグ・セッションを再生したり、中断したセッションを再開したりする場合に利用すると便利です。

以下のものは、コメントとして (COBOL プログラムの場合、7 桁目のアスタリスク {*} に続いて、また、C、C++、PL/I、およびアセンブラーの各プログラムの場合は /* */ で囲んで) 表示されます。

Debug Tool セッション・ログ・ファイルに関連付けられたデフォルトの DD 名は、INSPLOG です。INSPLOG という DD 名のファイルを割り振らないと、デフォルトのログ・ファイル は作成されません。

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

ログ・ファイルの作成

デバッグ・セッションの永続ログを作成するには、以下の仕様を持つファイルをまず作成します。

作成した後に、ユーザー・プログラムを実行するために使用する CLIST、JCL、または EXEC の DD 名 INSPLOG にこのファイルを割り振ってください。

COBOL の場合のみ、後でセッション・ログ・ファイルを コマンド・ファイルとして使用したい場合、RECFM FB および LRECL を 72 にします。 Debug Tool は、COBOL デバッグ・セッション中のファイル入力として は、72 桁目よりも後の部分はすべて無視します。

CICS の場合のみ、デフォルトは SET LOG OFF です。ログを開始するには、SET LOG ON file コマンドを使用しなければなりません。 例えば、ログが TSTPINE.DT.LOG というデータ・セットに書き込まれるようにするには、次のコマンドを出します。SET LOG ON FILE TSTPINE.DT.LOG;

SET LOG ON のデフォルトがまだ有効であることを確認してください。SET LOG OFF を出すと、ログ・ファイルへの出力は抑止されます。Debug Tool に制御が一度も渡されないと、ログ・ファイルは使用されません。

初期設定時にデフォルト・ログ・ファイル (INSPLOG) へのアクセスが行われると、同じ名前の既存ファイルがあればこれに上書きされます。MVS では、ログ・ファイルに MOD の後処理が割り振られている場合、ログ出力は既存のファイルに追加されます。SET LOG ON FILE xxx コマンドを入力しても、ログ出力は既存ファイルに追加されます。

ログ・ファイルをセッションに割り振らなかった場合、次のコマンドを入力し、SET LOG コマンドを使用して割り振ることができます。

SET LOG ON FILE logddn;

これにより、Debug Tool は DD 名 LOGDDN に割り振られたファイルにログを書き込むようになります。

注:
Debug Tool がログ・ファイルに書き込むため、セッション・ログには順次ファイルをお勧めします。

セッション中の任意の時点で次のように入力して、情報がログ・ファイルに 送られないようにすることができます。

SET LOG OFF;

ログ・ファイルの使用を再開させるには、次のように入力します。

SET LOG ON;

ログ・ファイルは、Debug Tool セッションの全体にわたって活動状態に なっています。

Debug Tool は、以下の操作モード、すなわち行モード、フルスクリーン・モード、およびバッチ・モードで、ログ・ファイルを保持します。

各ソース行を実行する回数の記録

ユーザー・コードの各行が実行された回数を記録するには、次のように します。

  1. 結果の永続的な記録を保持したい場合には、INSPLOG ファイルを割り振る。
  2. 次のコマンドを出す。
    SET FREQUENCY ON;
    SET FREQUENCY ON コマンドを入力した後、ユーザーのソース・ウィンドウは現在の頻度カウントを示すように更新されます。このコマンドは、実際のカウントを表示するための統計値の収集を開始するので、ユーザー・アプリケーションがコードのセクションを既に実行していた場合、これらの実行されたステートメントのデータは利用できないことに注意してください。

    プログラムの全体についてステートメントのカウントが欲しい場合は、次の命令を出してください。

    GO ;
    LIST FREQUENCY * ;

    これにより、各ステートメントの実行回数がリストされます。終了時に、結果がログ・ファイルに書き込まれます。LIST FREQUENCY * はいつでも出せますが、表示するのは、現在アクティブなコンパイル単位の頻度回数のみです。

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

検出されるブレークポイントの記録

自動モニターをサポートしないコンパイル単位をデバッグする場合は、SET AUTOMONITOR コマンドを使用して、そのコンパイル単位で検出されるブレークポイントを記録することができます。SET AUTOMONITOR ON コマンドを入力すると、あたかも QUERY LOCATION を入力したときのように、検出された各ブレークポイントの場所を Debug Tool が記録します。

行でユーザー・プログラムを停止するブレークポイントの設定

行のブレークポイントを設定または消去するには、ソース・ウィンドウ内の 実行可能行までカーソルを移動させて PF6 (AT/CLEAR) を 押します。DISABLE を使用して一時的にブレークポイントをオフにしたり、ENABLE を使用してオンに戻したりすることができます。

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

未ロードのロード・モジュールまたは非アクティブなプログラムでのブレークポイントの設定

以下のコマンドを使用すれば、未ロードのロード・モジュールまたは非アクティブなプログラムでソースを参照したり、ブレークポイントを設定したりすることができます。

SET QUALIFY CU load_spec ::> cu_spec ;

このコマンドで、ブレークポイントを設定したいロード・モジュールおよび CU の名前を指定します。 ロード・モジュールは必要に応じて暗黙的にロードされ、指定の CU に対して CU が作成されます。 指定の CU に対するソースが、ソース・ウィンドウに表示されます。 必要に応じて、ステートメント・ブレークポイントを設定できます。

GOSTEP などのコマンドによってプログラムの実行が再開されると、 暗黙的にロードされたモジュールは削除され、暗黙的に作成された CU にあるブレークポイントはすべて中断され、 暗黙的に作成された CU はすべて破棄されます。 通常のプログラム実行時に CU が後で作成されると、中断状態のブレークポイントは再活動化されます。

SET SAVE BPS 機能を使用してブレークポイントの保存および復元を行うと、 ブレークポイントはアクティブなエンクレーブ内にある最初のロード・モジュールの名前で保存および復元されます。 したがって、コマンド SET QUALIFY CU を使用して、別のエンクレーブの一部として実行されるプログラム内にブレークポイントを設定した場合、 このコマンドを使用して設定したブレークポイントは、別のエンクレーブでの実行時には復元されません。

比較での無効データに関する警告を Debug Tool が処理する方法の制御

Debug Tool が条件式を処理 (評価) し、いずれかのオペランドのデータが無効だった場合、その条件式は無効になります。この状態では、Debug Tool は停止し、ユーザーにコマンドの入力を促すプロンプトを出します。 プログラムの実行を続けるには、GO コマンドを入力する必要があります。 この状態で Debug Tool からプロンプトが出ないようにしたい場合は、SET WARNING OFF コマンドを入力します。

条件式は、以下の状態を含むいくつかの理由で、無効になる場合があります。

条件式の評価時に例外が発生した場合、Debug Tool は SET WARNINGOFF の場合でも停止し、例外に関するメッセージを表示し、コマンドの入力を求めるプロンプトを出します。

次の例では、複数の定義があるフィールドを条件式の一部として使用し、それぞれの定義に異なる属性がある場合に何が起きるかを説明しています。

  1. ユーザーが WK-TEST-NUM フィールドの値をチェックするために次のコマンドを入力します。このフィールドには 2 つの定義があり、1 つは数値、もう 1 つはストリングです。
    AT CHANGE WK-TEST-NUM 
       BEGIN;
       IF WK-TEST-NUM = 10; 
          LIST 'WK-TEST-NUM IS 10';
       ELSE;
          GO;
       END-IF;
       End;
  2. Debug Tool が条件式 WK-TEST-NUM = 10 を評価した時点では、WK-TEST-NUM フィールドのデータの型はストリングです。フィールド WK-TEST-NUM のデータがストリングで 10 とは比較できないため、比較は無効になります。Debug Tool は停止し、ユーザーにコマンドを入力するよう求めてきます。
  3. ユーザーは Debug Tool にプログラムの実行を続けさせ、このフィールドのデータの型が数値で 10 に一致する場合にのみ停止させたいと判断しました。
  4. ユーザーは次のコマンドを入力します。このコマンドは、SET WARNING OFF コマンドおよび SET WARNING ON コマンドの呼び出しを追加します。
    AT CHANGE WK-TEST-NUM 
       BEGIN;
       SET WARNING OFF;
       IF WK-TEST-NUM = 10; 
          LIST 'WK-TEST-NUM IS 10';
       ELSE;
          BEGIN;
          SET WARNING ON;
          GO;
          END;
       END-IF;
       SET WARNING ON;
       END;

    これで、フィールド WK-TEST-NUM の値が 10 でないか数値型でない場合、Debug Tool は条件式 WK-TEST-NUM = 10 を false として評価し、GO コマンドを実行します。Debug Tool は停止せず、コマンドの入力を求めるプロンプトを出します。

この例では、条件式 (WK-TEST-NUM = 10) が評価される前に SET WARNING OFF コマンドを入力することにより、この条件式に関する警告メッセージの表示が抑止されました。 条件式が評価された後、SET WARNING ON コマンドを入力することにより、警告メッセージの表示は許可されました。

SET WARNING OFF コマンドを入力するときは、慎重に考慮してください。プログラム内のその他の問題を検出するのに役立つ警告メッセージの表示を抑止してしまう可能性もあるからです。

ユーザー・プログラムの実行またはステップスルー

デフォルトにより、Debug Tool が始動した時点では、ユーザー・プログラムは まだ 1 つも (C++ コンストラクターおよび静的オブジェクトの 初期設定も含めて) 実行されていません。

Debug Tool は、1 つの行を画面上で 1 行として定義します。通常、これは行番号によって識別されます。 ステートメントは言語構造体であり、一連のアクションまたは宣言のセットにおけるステップを表しています。 1 つのステートメントが 1 行になることも、複数行になることもあります。また、複数のステートメントが 1 行で示されることもあります。 プログラムをステップスルーすると Debug Tool によって実行されるステートメントの数は、フックを配置する場所によって異なります。

次のフックまでプログラムを実行するには、PF2 (STEP) を 押します。以下の TEST または DEBUG コンパイラー・サブオプションのいずれかを組み合わせてプログラムをコンパイルした場合、STEP は 1 つのステートメントを実行します。

ブレークポイントに達するか、プログラムが終了するか、または条件が起こるまでユーザー・プログラムを実行するには、PF9 (GO) を押します。

注:
条件として起こるものは、TEST 実行時サブオプション test_level の設定により決まります。

コマンド STEP OVER は、呼び出された機能を実行しますが、その中をステップ実行しません。ステップオーバーするつもりであったのに、誤ってステップ処理で関数に入って しまった場合、STEP RETURN コマンドを出すと、戻り点 (呼び出し点の直後) にステップします。

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

ステートメントの記録と再生

Debug Tool は、ユーザーがプログラムをデバッグする際に実行するステートメントを記録および再生することができる、コマンド (PLAYBACK コマンド) 一式を提供します。ステートメントを記録および再生するには、次のことを行ってください。

  1. 実行するステートメントを記録します (PLAYBACK ENABLE コマンド)。DATA パラメーターを指定するか、 または DATA パラメーターにデフォルトがある場合、ユーザー・プログラムに関する追加情報が記録されます。
  2. ステートメントの再生の準備をします (PLAYBACK START コマンド)。
  3. 記録したステートメントを再生します (STEP または RUNTO コマンド)。
  4. ステートメントが再生される方向を変更します (PLAYBACK FORWARD コマンド)。
  5. ステートメントの再生を停止します (PLAYBACK STOP コマンド)。
  6. 実行するステートメントの記録を停止します (PLAYBACK DISABLE コマンド)。PLAYBACK DISABLE コマンドで明示、または暗示されたコンパイル単位のすべてのデータが廃棄されます。

上記の各手順については、これ以降のセクションで詳細に説明します。

実行するステートメントの記録

PLAYBACK ENABLE コマンドには、以下のパラメーターを指定します。

PLAYBACK ENABLE コマンドは、すべてのコンパイル単位または特定のコンパイル単位に対して実行するステートメントを記録するのに使用することができます。例えば、A、B、および C という既存のコンパイル単位に対して実行するステートメントを記録することができます。その後、PLAYBACK ENABLE コマンドを入力しすべてのコンパイル単位に対して実行するステートメントを記録するよう指定することができます。アスタリスク (*) を使用して、現在および将来のすべてのコンパイル単位を指定することができます。

Debug Tool が記録できるステートメントの数は、次のことに依存します。

記録をはじめた後で、ストレージの値を変更することはできません。指定するストレージの容量が大きいほど、Debug Tool は、より多くのステートメントを記録できます。Debug Tool が、使用可能なストレージをすべて使用してしまった場合、Debug Tool は、最新のステートメントの情報を最も古い情報に上書きします。DATA パラメーターが有効の場合、使用可能なストレージはもっと早く埋まっていきます。

TEST コンパイラー・オプションの SYM サブオプション を指定してコンパイルされたプログラムで DATA パラメーターを使用できるのは、 それらが以下のコンパイラーでコンパイルされる場合のみです。

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

記録したステートメントの再生の準備

PLAYBACK START コマンドは、記録したステートメントをユーザーが再生したいということを Debug Tool に通知します。このコマンドは、通常のデバッグを中断させます。ブレークポイントが中断され、多くの Debug Tool コマンドが使用できなくなります。「Debug Tool リファレンスおよびメッセージ」には、ステートメントの再生中に使用できないコマンドの完全なリストが記載されています。

再生方向の初期設定は、逆方向です。

記録したステートメントの再生

記録したステートメントを再生するには、STEP あるいは RUNTO コマンドを入力します。以下の条件のいずれかが満足されるまで、記録したステートメントを再生することができます。

順方向には、PLAYBACK START コマンドを入力した箇所まで再生することができます。ステートメントを再生する際、記録を希望したコンパイル単位に対して記録したステートメントだけを見ることができます。ステップを再生している間は、変数の変更はできません。DATA パラメーターが有効になっている場合、変数や式の内容にアクセスすることができます。

ステートメントが再生される方向を変更

ステートメントの再生の方向を変更するには、PLAYBACK FOWARD コマンドまたは PLAYBACK BACKWARD コマンドを入力します。再生方向の初期設定は、逆方向です。

再生の停止

記録したステートメントの再生を停止して通常のデバッグを再開するには、PLAYBACK STOP コマンドを入力します。このコマンドは、PLAYBACK START コマンドを入力した箇所で通常のデバッグを再開します。Debug Tool は、ユーザーが実行するステートメントの記録を続けます。

記録の停止

実行するステートメントの記録とプログラムに関する追加情報の収集を停止するには、PLAYBACK DISABLE コマンドを入力します。このコマンドは、すべてのあるいは特定のコンパイル単位で実行するステートメントの記録を停止するのに使用します。1 つ以上のコンパイル単位の記録を停止する場合、そのようなコンパイル単位のデータは廃棄されます。すべてのコンパイル単位の記録を停止すると、PLAYBACK START コマンドは使用できなくなります。

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

ステートメントの記録と再生に関する制限

ステートメントの再生中は、変数やストレージの値を変更することはできません。

ステートメントを再生する際、多くの Debug Tool コマンドが使用できなくなります。「Debug Tool リファレンスおよびメッセージ」には、使用することのできないすべてのコマンドの完全なリストが記載されています。

COBOL データへのアクセスに関する制限事項

DATA パラメーターが、それをサポートする COBOL コンパイル単位に対して指定されている、あるいはデフォルト設定されている場合、DATA DIVISION の次のセクションに定義されているデータにアクセスすることができます。

ADDRESS OFLENGTH OF、および WHEN-COMPILED 以外の特殊レジスターにもアクセスすることができます。また、Debug Tool のコマンドがサポートするすべての特殊レジスターにもアクセスが可能です。

ステートメントを再生している場合、以下の条件が満たされれば、多くの Debug Tool のコマンドを使用することができます。

QUERY PLAYBACK コマンドを使用し、DATA オプションが有効になっているコンパイル単位を判別することができます。

Debug Tool リファレンスおよびメッセージ」には、DATA パラメーターを指定したときに使用可能なすべてのコマンドの完全なリストが記載されています。

設定、ブレークポイント、およびモニター指定の保存と復元

あるデバッグ・セッションで設定、ブレークポイント、およびモニター指定を保存してから、後続のデバッグ・セッションでそれらを復元できます。保存できるのは以下の情報です。

設定
WINDOW SIZEWINDOW CLOSE、および SET コマンドの設定 (ただし、以下の SET コマンドの設定を除きます)。
ブレークポイント
すべての LOADDEBUGDATA (LDD) 指定の他に、現行デバッグ・セッションで現在設定または中断されているすべてのブレークポイント。 以下のブレークポイントが保存されます。

据え置き AT ENTRY ブレークポイントが検出されなかった場合、その保存も復元も行われません。

モニター指定
現在有効状態のモニターおよび LOADDEBUGDATA (LDD) 指定のすべて。

大部分の環境では Debug Tool は特定のデフォルト・データ・セット名を使用してこれらの項目を保存します。それによって、このツールがユーザーに代わってこれらの項目の保存と復元を自動的に行います。これらの環境では、各設定を自動的に復元する必要があります。それによって、SET RESTORE BPS AUTOSET RESTORE MONITORS AUTO コマンドが Debug Tool 初期設定時に有効になります。一部の環境では RESTORE コマンドを使用してこれらの項目を手動で復元する必要があります。

TSO、CICS (ユーザー自身の ID を使用してログオン時)、および UNIX システム・サービスでは、以下のデフォルト・データ・セット名が使用されます。

非対話式モード (フルスクリーン・モード (VTAM 端末) を使用しない MVS バッチ・モード) では、INSPSAFE DD ステートメントを組み込みます。この DD ステートメントは、Debug Tool が各設定の保存と復元に必要となるデータ・セットです。また、INSPBPM DD ステートメントも組み込みます。この DD ステートメントは、Debug Tool がブレークポイント、モニター、および LDD 指定の保存と復元に使用する必要のあるデータ・セットです。

順次データ・セットを使用して、各設定の保存と復元を行います。PDS または PDSE を使用して、ブレークポイント、モニター、および LDD 指定の保存と復元を行います。 お勧めは PDSE の使用で、データ・セット圧縮を行う必要がないからです。Debug Tool は 独立したメンバーを使用して、各エンクレーブごとにブレークポイント、LDD データ、およびモニター指定を保存します。Debug Tool は、そのメンバー名をエンクレーブ内の初期ロード・モジュール名にします。保存されたすべてのブレークポイント、LDD データ、およびモニター指定をあるエンクレーブごとに破棄したい場合、対応するそのメンバーを削除すればよいのです。ただし、そのメンバーの内容を変更しないでください。

自動的な保存と復元

自動保存と復元を可能にするには、以下のステップを行う必要があります。

  1. 各設定を保存することになるデフォルト名を付けた 順次データ・セットを事前割り振りしておきます。非対話式モード (フルスクリーン・モード (VTAM 端末) を使用しない MVS バッチ・モード) で稼働する場合、このデフォルトのデータ・セットを参照する INSPSAFE DD ステートメントを組み込む必要があります。
  2. ブレークポイント、モニター、および LDD 指定を保存することになるデフォルト名を付けた PDSE または PDS を事前割り振りしておきます。非対話式モード (フルスクリーン・モード (VTAM 端末) を使用しない MVS バッチ・モード) で稼働する場合、このデフォルトのデータ・セットを参照する INSPBPM DD ステートメントを組み込む必要があります。
  3. Debug Tool を始動します。
  4. 各設定の自動保存と復元を可能にするコマンドは、以下を使用します。
    SET SAVE SETTINGS AUTO;
    SET RESTORE SETTINGS AUTO;
  5. ブレークポイントと LDD 指定またはモニターと LDD 指定の自動保存と復元を可能にしたい場合は、以下のコマンドを使用します。
    SET SAVE BPS AUTO;
    SET RESTORE BPS AUTO;
    SET SAVE MONITORS AUTO;
    SET RESTORE MONITORS AUTO;

    ブレークポイントまたはモニター指定の自動復元を可能にしたい場合は、ステップ 4 (各設定の自動保存と復元を可能にする) を行う必要があります。

  6. Debug Toolをシャットダウンします。ご使用の各設定は対応するデータ・セットに保存されます。

次回の Debug Tool 開始時にこの各設定が自動復元されます。同一プログラムをデバッグしている場合、ブレークポイントとモニター指定も自動復元されます。

Debug Tool では、これらのステップをユーザーに代わって行うサンプルのバッチ・ジョブ (hlq.SEQSAMP データ・セットの EQAWSVST メンバー) が提供されています。

ブレークポイント、モニター、および設定の自動的な保存と復元を使用不可にする方法

ブレークポイントとモニターの自動保存を使用不可にするには、以下の設定を有効にする必要があります。

設定の自動保存を使用不可にするには、SET SAVE SETTINGS NOAUTO; 設定を有効にする必要があります。

ブレークポイントとモニターの自動復元を使用不可にするには、以下の設定を有効にする必要があります。

設定の自動復元を使用不可にするには、SET RESTORE SETTINGS NOAUTO; 設定を有効にする必要があります。

これらのどの値の自動保存を使用不可にする場合も、最後に保存されたデータは依然として適切なデータ・セットの中に存在しています。このため、これらのデータ・セットから復元することができます。注意すべきことは、そのデータが保存 された最終時点から値を復元するということです。このことは、Debug Tool を実行した最終時点から復元するということではありません。

手動復元

以下の環境では自動復元はサポートされません。

以下のステップを実行して、ブレークポイント、モニター、および LDD 指定の保存と復元を行います。

  1. 各設定の保存と復元用の順次データ・セットを事前割り振りします。
  2. ブレークポイントとモニター指定の保存と復元用に PDSE または PDS を事前割り振りします。
  3. Debug Tool を始動します。
  4. 各設定の自動保存を使用可能にするには、以下のコマンドを使用します。ここで、 mysetdsn はデータ・セット名であり、ステップ 1 で割り振っておいたものです。
    SET SAVE SETTINGS AUTO FILE mysetdsn;
  5. ブレークポイントと LDD 指定またはモニターと LDD 指定の自動保存を使用可能にするには、以下のコマンドを使用します。ここで、mybpdsn はデータ・セット名であり、ステップ 2 で割り振っておいたものです。
    SET SAVE BPS AUTO FILE mybpdsn;
    SET SAVE MONITORS AUTO;
  6. Debug Toolをシャットダウンします。

上記のいずれかの環境で次回の Debug Tool 開始時に、Debug Tool セッションの先頭で以下のコマンドをこの順序で使用する必要があります。

SET SAVE SETTINGS AUTO FILE mysetdsn;
RESTORE SETTINGS;
SET SAVE BPS AUTO FILE mybpdsn;
RESTORE BPS MONITORS;

これらのコマンドをユーザーの優先ファイル (INSPPREF) に入れても構いません。

マルチエンクレーブ環境でのパフォーマンスに関する考慮事項

情報が保存または復元されるたびに、以下のアクションが実行される必要があります。

  1. データ・セットを割り振る
  2. データ・セットを開く
  3. データ・セットを書き込むか読み取る
  4. データ・セットを閉じる
  5. データ・セットの割り振りを解除する

これらの各ステップはオペレーティング・システム・サービスを必要とするので、プロセス全体では、大量の経過時間が必要になる場合があります。

設定の保存と復元の場合、このプロセスは Debug Tool がアクティブにされるときに 1 回と、Debug Tool が終了するときに 1 回行われます。したがって、Debug Tool が繰り返しアクティブにされ、終了する場合を除き、このプロセスが過度に時間を消費することはありません。しかし、ブレークポイントかモニター、またはその両方の保存と復元の場合、このプロセスは各エンクレーブに入るときに 1 回と、各エンクレーブを終了するときに 1 回ずつ発生します。

プログラムが複数のエンクレーブから構成されているか、繰り返し実行される 1 つのエンクレーブで構成されている場合、このプロセスは何度も発生する可能性があります。その場合、パフォーマンスが気になるのであれば、ブレークポイントとモニターの保存と復元を使用不可にすることを考慮するとよいでしょう。プログラムが DTCN を伴う CICS の下で実行され、ブレークポイントとモニターの保存と復元が使用可能に設定されていない (SET SAVE BPS NOAUTO;SET SAVE MONITORS NOAUTO;SET RESTORE BPS NOAUTO;、および SET RESTORE MONITORS NOAUTO; が有効である) 場合、ブレークポイントは CICS 一時ストレージ・キューを使用して保存および復元されます。これは、標準的な方法より時間がかかりませんが、CICS の再始動をはさんでブレークポイントを保存できず、また、モニターの保存と復元にも対応していません。

変数の値を表示およびモニターする

Debug Tool では、以下の方法で変数の値を表示できます。

注:
LIST 出力を配列用および構造用に表形式でフォーマットするには、コマンド SET LIST TABULAR を使用します。 このコマンドについて詳しくは、「Debug Tool リファレンスおよびメッセージ」を参照してください。

Debug Tool が、宣言されたデータ型で変数の値を表示できない場合は、宣言されたデータ型で表示できない文字を Debug Tool が処理する方法を参照してください。

変数の値のワンタイム表示

開始する前に、情報が表示される形式を変更するかどうかを決めます。 領域および構成の変数の方が、画面上で表形式で配置される場合、より簡単に読み取れる場合があります。 形式に変更を加えるには、以下のオプションのいずれかを実行します。

変数の内容を 1 回表示するには、以下のオプションのいずれかを実行します。

モニター・ウィンドウへの変数の追加

モニター・ウィンドウに変数を追加すると、その変数の値を モニター することになります。モニター・ウィンドウに変数を追加するには、以下のオプションのいずれかを実行します。

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

モニター・ウィンドウ内の変数のデータ型の表示

コマンド SET MONITOR DATATYPE ON は、モニター・ウィンドウに表示される変数のデータ型を表示します。これには、自動モニター・セクションの変数も含まれます。通常、このデータ型はその変数の宣言で使用されたデータ型です。コマンド SET MONITOR DATATYPE OFF は、この情報の表示を使用不可にします。

変数の値とデータ型をモニター・ウィンドウに表示するには、以下のステップを実行します。

  1. コマンド行にカーソルを移動します。
  2. 次のコマンドを入力します。
    SET MONITOR DATATYPE ON;
  3. 次のいずれかのコマンドを入力します。

モニター・ウィンドウ内の変数を別の変数に置き換える方法

モニター・ウィンドウに変数を追加すると、Debug Tool は、その変数に 1 から 99 までの参照番号を割り当てます。これらの参照番号を使用して、モニター・ウィンドウ内の変数を別の変数に置き換えることができます。

モニター・ウィンドウ内の変数を別の変数に置き換えるには、以下のステップを実行します。

  1. 置き換えたいモニター・ウィンドウ内の変数の参照番号が分かっていることを確認します。
  2. コマンド行にカーソルを移動します。
  3. 次のコマンドを入力します。reference_number には、置き換えたい変数の参照番号を指定し、variable-name には、新しい変数の名前を指定してください。
    MONITOR reference_number LIST variable-name;

    指定できる参照番号は、既存の参照番号か、または既存の最大の参照番号より 1 だけ大きい番号のみです。

  4. Enter を押します。Debug Tool は、新しい変数をモニター・ウィンドウの、古い変数が表示されていた行に追加し、新しい変数の現行値を表示します。

モニター・ウィンドウへの自動的な変数の追加

プログラムをステップスルーしていくと、各ステートメントを実行するときに、各ステートメントの変数をモニターする必要が生じることがあります。 各ステートメントを実行する前に、モニター・ウィンドウに変数を手動で追加する方法は (モニター・ウィンドウへの変数の追加を参照)、時間がかかる場合があります。 Debug Tool を使用すると、各ステートメントを実行する前後に、ステートメントに変数を自動で追加することができます。また、ステートメントを実行する前後に、これらの変数の値を表示し、ステートメントを実行した後に、モニター・ウィンドウから変数を除去することができます。 これを行うには、SET AUTOMONITOR ON コマンドを使用します。

開始する前に、Debug Tool が変数を自動的にモニター・ウィンドウに追加する方法を確認して、SET AUTOMONITOR コマンドがどのように作用するのかを理解しておいてください。

変数をモニター・ウィンドウに自動的に追加するには、以下のステップを実行します。

  1. コマンド行にカーソルを移動します。
  2. 次のいずれかのコマンドを入力します。

    プログラムをステップスルーしていくと、Debug Tool によって、ウィンドウの自動モニター・セクションに、変数の名前と値が表示されます。

  3. モニター・ウィンドウに変数が自動的に追加されるのを停止するには、SET AUTOMONITOR OFF コマンドを入力します。 Debug Tool は ********** AUTOMONITOR ********** の行と、その行の下にある変数をすべて除去します。

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

自動モニター・セクションの情報をログ・ファイルに保存する方法

次の情報をログ・ファイルに保存するには、SET AUTOMONITOR ON LOG コマンドを入力します。

デフォルト・オプションは NOLOG で、上の情報を保存しません。

ログ・ファイルの各エントリーが、プログラム内でのブレークポイントの場所と、ステートメントの変数の名前と値を含みます。このような情報をログ・ファイルに保存するのをやめ、モニター・ウィンドウの自動モニターのセクションの更新を継続するには、SET AUTOMONITOR ON NOLOG コマンドを入力します。

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

Debug Tool が変数を自動的にモニター・ウィンドウに追加する方法

SET AUTOMONITOR ON コマンドを入力すると、Debug Tool によって、以下の例のように、モニター・ウィンドウ内のモニター対象変数のリストの下部に ********** AUTOMONITOR ********** という行が表示されます。

COBOL    LOCATION: DTAM01 :> 109.1                                             
Command ===>                                                   Scroll ===> PAGE
MONITOR -+----1----+----2----+----3----+----4----+----5----+----6- LINE: 1 OF 7
******************************** TOP OF MONITOR *******************************
                                  ----+----1----+----2----+----3----+----4----+

0001  1 NUM1                      0000000005                                   
0002  2 NUM4                     '1111'                                       
0003  3 WK-LONG-FIELD-2          '123456790 223456790 323456790 423456790 523 
0004                              456790 623456790 723456790 823456790 9234567 
0005                              90 023456790 123456790 223456790 323456790 4 
0006                              23456790 523456790 623456790 723456790 82345 
0007                              ********** AUTOMONITOR **********

この行より下の領域は、自動モニター・セクションと呼ばれます。STEP コマンドを入力するたびに、またはブレークポイントが検出されるたびに、Debug Tool は以下のタスクを実行します。

  1. 自動モニター・セクションに表示された変数の名前と値を除去する。
  2. Debug Tool が次に実行するステートメントの変数の名前と値を表示する。表示される変数は、ステートメントが実施される前の 値です。

この動作によって、Debug Tool がステートメントを実行する前に、変数の値が表示されます。 Debug Tool がステートメントを実行した後に変数の値を表示する場合は、SET AUTOMONITOR ON PREVIOUS コマンドを入力します。Debug Tool によって、モニター・ウィンドウ内にあるモニター対象変数のリストの下部に ********** AUTOMONITOR - PREVIOUS load-name ::> cu-name :> statement-id ********** という行が表示されます。 STEP コマンドを入力するたびに、またはブレークポイントが検出されるたびに、Debug Tool は以下のタスクを実行します。

  1. 自動モニター・セクションに表示された変数の名前と値を除去する。
  2. Debug Tool で実行された最も新しいステートメントの変数の名前と値を表示する。表示される変数は、ステートメントが実施された後の 値です。

Debug Tool がステートメントを実行する前後に変数の値を表示する場合は、SET AUTOMONITOR ON BOTH コマンドを入力します。Debug Tool によって、モニター・ウィンドウ内にあるモニター対象変数のリストの下部に ********** AUTOMONITOR load-name ::> cu-name :> statement-id ********** という行が表示されます。 Debug Tool によって、この行の下に、Debug Tool が次に実行するステートメントの変数の名前と値が表示されます。次に、Debug Tool によって、***** Previous Statement load-name ::> cu-name :> statement-id ***** という行が表示されます。 Debug Tool によって、この行の下に、Debug Tool が今実行したステートメントの変数の名前と値が表示されます。STEP コマンドを入力するたびに、またはブレークポイントが検出されるたびに、Debug Tool は以下のタスクを実行します。

  1. 自動モニター・セクションに表示された変数の名前と値を除去する。
  2. Debug Tool が次に実行するステートメントの変数の名前と値を表示する。表示される変数は、ステートメントが実施される前の 値です。
  3. Debug Tool が今実行したステートメントの変数の名前と値を表示する。表示される変数は、ステートメントが実施された後の 値です。

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

例: Debug Tool が変数を自動的にモニター・ウィンドウに追加する方法

このセクションの例は、次の 2 行の COBOL コードが実行されることを想定します。

COMPUTE LOAN-AMOUNT = FUNCTION NUMVAL(LOAN-AMOUNT-IN).  1 
COMPUTE INTEREST-RATE = FUNCTION NUMVAL(INTEREST-RATE-IN).

 1  のステートメントを実行する前に、次のコマンドを入力します。

SET AUTOMONITOR ON ; 

変数 LOAN-AMOUNT および LOAN-AMOUNT-IN の名前と値が、モニター・ウィンドウの自動モニターのセクションに表示されます。これらの値は、ステートメントを実行する前の変数の値です。

STEP コマンドを入力します。Debug Tool が、LOAN-AMOUNT および LOAN-AMOUNT-IN をモニター・ウィンドウの自動モニターのセクションから削除します。そして、変数 INTEREST-RATE INTEREST-RATE-IN の名前と値を表示します。これらの値は、ステートメントを実行する前の変数の値です。

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

宣言されたデータ型で表示できない文字を Debug Tool が処理する方法

モニター・ウィンドウで、Debug Tool は以下のいずれかの文字を使用して、宣言されたデータ型で表示できない文字を示します。

宣言されたデータ型で表示できない文字は、コード・ページごとに異なる場合があります。しかし、一般的に言って、それらの文字は画面に表示可能な対応する記号を持たない文字です。

それらの文字を変更できるようにするために、HEX および DEF 接頭部コマンドを使用して、どの文字を変更しようとしているかを確認できます。

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

宣言されたデータ型で表示できない文字の変更

宣言されたデータ型で表示できない文字を Debug Tool が処理する方法で説明したように、宣言されたデータ型で表示できない文字を変更し、結果が予期したとおりであることを確認したい場合は、以下のステップを実行します。

  1. 変更したい文字を含んでいる行に沿って、モニター・ウィンドウの接頭部域まで、カーソルを移動します。
  2. HEX 接頭部コマンドを入力します。Debug Tool は文字を 16 進形式で表示するよう変更します。
  3. カーソルを、その文字へ移動します。
  4. 新しい 16 進 値を入力し、Enter を押します。Debug Tool は文字を変更し、新しい値を 16 進形式で表示します。
  5. 文字を宣言されたデータ型で表示したい場合は、カーソルを接頭部域まで移動し、DEF コマンドを入力します。

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

モニター・ウィンドウでの値のフォーマット

変数の値を縦欄の形式でモニターするには、SET MONITOR COLUMN ON コマンドを入力します。モニター・ウィンドウに表示される変数名は同じ桁に位置合わせされ、値も同じ桁に位置合わせされます。Debug Tool は、モニター・ウィンドウのヘッダー行の下に、モニター値域の目盛りが表示されます。

モニター対象の変数の値をモニター・ウィンドウ内で折り返し表示するには、SET MONITOR WRAP ON コマンドを入力します。 モニター対象の変数の値をスクロール可能行に表示するには、SET MONITOR COLUMN ON コマンドを入力した後に、SET MONITOR WRAP OFF コマンドを入力します。

16 進形式で値を表示する

変数の値を 16 進形式で表示するには、LIST %HEX コマンドを 入力するか、LIST %HEX コマンドで PF キーを定義します。PL/I プログラムの場合、変数の値を 16 進形式で 表示するには、PL/I 組み込み関数 HEX を使用します。PL/I HEX 組み込み関数について詳しくは、 「Enterprise PL/I for z/OS: プログラミング・ガイド」を参照してください。 PL/I 変数を 16 進形式で表示する場合、モニター・ウィンドウ上で既存の値に 上書きして変数の値を編集することはできません。

16 進形式で変数の値を表示するには、variable-name を変数の名前で 置き換えて以下のいずれかのコマンドを入力します。

Debug Tool は、変数 variable-name の値を 16 進形式で表示します。

LIST %HEX コマンドで PF キーを定義した場合、以下のステップを行います。

  1. 変数がソース・ウィンドウに表示されていない場合、 目的の変数がソース・ウィンドウに表示されるまでプログラムをスクロールします。
  2. その変数名にカーソルを移動します。
  3. LIST %HEX コマンドを定義した PF キーを押します。Debug Tool は、変数 variable-name の値を 16 進形式で表示します。

PL/I HEX 組み込み関数で PF キーを定義することはできません。

16 進形式で変数の値をモニターする

変数の値は、変数の宣言されたデータ型または 16 進形式でモニターすることができます。 宣言されたデータ型で変数の値をモニターするには、モニター・ウィンドウへの変数の追加で説明された手順に従います。 PL/I HEX 組み込み関数を使用して、PL/I 変数を 16 進形式でモニターする場合、モニター・ウィンドウの既存の値に上書きして変数の値を編集することはできません。PL/I HEX 組み込み関数を使用する代わりに、ここで説明するコマンドを使用してください。

変数または式の値を 16 進形式でモニターするには、 以下のいずれかの手順を行います。

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

コマンドを使用して変数またはストレージを変更する

以下のいずれかのコマンドを使用して、変数またはストレージの値を変更することができます。

各コマンドは「Debug Tool リファレンスおよびメッセージ」で説明されています。

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

既存値に上書きして変数またはストレージを変更する

モニター・ウィンドウ上で既存の値に上書きすることにより変数の値を変更するには、 以下のステップを行います。

  1. 既存の値にカーソルを移動します。変更する値の一部が画面からはみ出ている場合、SCROLL モニター値域機能 (SET MONITOR WRAP OFF コマンドで使用可能) を使用して、既存の値の位置にカーソルを移動します。
  2. 新しい値を入力します。新しい値を入力できる領域が黒の垂直バーで示されます。 左の垂直バーを含めてその前や、右の垂直バーを含めてその後に何かを入力することはできません。
  3. Enter を押します。

    Debug Tool は変数またはストレージを変更します。 変数またはストレージを変更するために Debug Tool が生成したコマンドは、ログ・ファイル内に保管されます。

モニター・ウィンドウの変数変更の制約事項

モニター・ウィンドウ上で既存の値に上書きすることにより変数の値を変更する際には、 以下の制約があります。

モニター値域に引用符 (") またはアポストロフィ (') を入力する場合は、該当する引用符規則に準拠していることをよく確認してください。

モニター・ウィンドウのオープンとクローズ

SET AUTOMONITOR ON コマンドを入力する前にモニター・ウィンドウが閉じられた場合、Debug Tool は、モニター・ウィンドウを開き、実行されるステートメントの変数の名前と値をウィンドウの自動モニター・セクションに表示します。

SET AUTOMONITOR OFF コマンドを入力する前にモニター・ウィンドウが開いており、SET AUTOMONITOR ON がモニターしていない変数の値を監視している場合、モニター・ウィンドウは開いたままになります。

メモリー・ウィンドウでのメモリーの表示および変更

Debug Tool は、メモリー・ウィンドウを通じてメモリーのセクションを表示できます。次のいずれかのオプションを実行することにより、メモリー・ウィンドウを開き、そこにメモリーの特定のセクションを表示できます。

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

16 進データ域でのメモリーの変更

16 進データ域に 16 進文字 (0 から 9、A から F、a から f) を上書きできます。 Debug Tool は、ユーザーが入力した値でメモリーを更新します。メモリーのプログラム命令域を変更した場合、Debug Tool は STEP コマンドをどれも実行しないか、メモリーが変更された領域の近くにある AT ブレークポイントで停止しません。さらに、ユーザーがプログラムの実行を試みた場合、結果は予測不能になります。

文字データ列はデータの文字表現であり、表示の目的にのみ存在する領域です。

ファイルの割り振りの管理

DESCRIBE ALLOCATIONSALLOCATE、および FREE コマンドを使用してデバッグを行っている間に、ファイルの管理をすることができます。CICS プログラムのデバッグ中にファイルを管理することはできません。

現在割り振られているファイルのリストを見るには、DESCRIBE ALLOCATIONS コマンドを入力します。以下の画面は、コマンドと出力の例を示しています。

  DESCRIBE ALLOCATIONS ;
*  Current allocations:
*  VOLUME CAT DISP       OPEN DDNAME   DSNAME
*   1 ---  2 -  3 ------  4 -  5 -----  6 ------------------------------------------
*  COD008  *  SHR KEEP     *  EQAZSTEP BCARTER.TEST.LOAD
*  SMS004  *  SHR KEEP                 SHARE.CEE210.SCEERUN
*  COD00B  *  OLD KEEP     *  INSPLOG  BCARTER.DTOOL.LOGV
*  VIO        NEW DELETE      ISPCTL0  SYS02190.T085429.RA000.BCARTER.R0100269
*  COD016  *  SHR KEEP        ISPEXEC  BCARTER.MVS.EXEC
*  IPLB13  *  SHR KEEP                 ISPF.SISPEXEC.VB
*  VIO        NEW DELETE      ISPLST1  SYS02190.T085429.RA000.BCARTER.R0100274
*  IPLB13  *  SHR KEEP     *  ISPMLIB  ISPF.SISPMENU
*  SMS278  *  SHR KEEP                 SHARE.ANALYZ21.SIDIMLIB
*  SHR89A  *  SHR KEEP                 SHARE.ISPMLIB
*  SMS25F  *  SHR KEEP     *  ISPPLIB  SHARE.PROD.ISPPLIB
*  SMS891  *  SHR KEEP                 SHARE.ISPPLIB
*  SMS25F  *  SHR KEEP                 SHARE.ANALYZ21.SIDIPLIB
*  IPLB13  *  SHR KEEP                 ISPF.SISPPENU
*  IPLB13  *  SHR KEEP                 SDSF.SISFPLIB
*  IPLB13  *  SHR KEEP                 SYS1.SBPXPENU
*  COD002  *  OLD KEEP     *  ISPPROF  BCARTER.ISPPROF
*             NEW DELETE      SYSIN    TERMINAL
*             NEW DELETE      SYSOUT   TERMINAL
*             NEW DELETE      SYSPRINT TERMINAL

以下のリストは、画面の各列の説明です。

 1  VOLUME
データ・セットを含む DASD ボリュームのボリューム・シリアルです。
 2  CAT
この列のアスタリスクは、同じシステム・カタログを使用してデータ・セットが配置されていることを示します。
 3  DISP
データ・セットに割り当てられたファイル属性指定です。
 4  OPEN
この列のアスタリスクは、ファイルが現在開いていることを示します。
 5  DDNAME
ファイルの DD 名です。
 6  DSNAME
DASD データ・セットのデータ・セット名:

ALLOCATE コマンドを使用して、既存のカタログ式データ・セットにファイルを割り振ることができます。

FREE コマンドを使用して、割り振られたファイルを解放することができます。

デフォルトでは、DESCRIBE ALLOCATIONS コマンドは現在のユーザーにより割り振られたファイルをリストします。他のパラメーターを指定して、LINK リスト、LPA リスト、APF リスト、システム・カタログ、Parmlib、および Proclib に現在割り振られているデータ・セットなど、他のシステム割り振りをリストすることができます。「Debug Tool リファレンスおよびメッセージ」は、これらの情報をリストするために指定しなければならないパラメーターについて説明しています。

ログ・ウィンドウ内のメッセージのエラー番号の表示

ログ・ウィンドウにエラー・メッセージが表示されるときにメッセージ ID 番号が表示されない場合は、次のようにメッセージ ID 番号を表示することができます。

EQA1807E The command element d is ambiguous.

ユーザーのプロファイルを変更するか、SET MSGID ON コマンドを使用してください。ユーザー・プロファイルを変更するには、PANEL PROFILE コマンドを使用し、Show message ID numbersYES に設定 (NO に上書き) してください。

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

Debug Tool に認識されるコンパイル単位のリストの表示

ここでは、どのコンパイル単位が Debug Tool に認識されるかを知りたい場合に、どうすればよいかを説明します。これは、コンパイル単位の名前を忘れた場合や、ソース・ファイル、リスト・ファイル、または分離デバッグ・ファイルが、プログラムのコンパイル後に移動または名前変更された場合に役立ちます。Debug Tool は、既知のコンパイル単位に関連したソース・ファイル、リスト・ファイル、または分離デバッグ・ファイルのみを表示できます。

どのコンパイル単位を Debug Tool が認識できるかを判別するには、以下のいずれかのオプションを実行します。

LIST NAMES CUS コマンドの実行後、Debug Tool はコンパイル単位のリストをログ・ウィンドウに表示します。このリストを使用して SET QUALIFY CU コマンドを構成でき、そのためには、コンパイル単位の名前の上に「SET QUALIFY CU」というワードを入力します。次に、Enter を押します。Debug Tool は、ユーザーが入力したワードから構成されたコマンドと、コンパイル単位の名前を表示します。再び Enter を押して、コマンドを実行します。

例えば、LIST NAMES CUS コマンドを入力した後、Debug Tool はログ・ウィンドウに以下の行を表示します。

USERID.MFISTART.C(CALC)
USERID.MFISTART.C(PUSHPOP)
USERID.MFISTART.C(READTOKN)

最後の行の上に SET QUALIFY CU と入力し、Enter を押すと、Debug Tool はコマンド行の中に次のコマンドを構成します。SET QUALIFY CU "USERID.MFISTART.C(READTOKN)"。Enter を押すと、Debug Tool はこのコマンドを実行します。

この方法はキー・ストロークが少なくて済み、長いコマンドでエラーが少なくなります。

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

対話式セッション中のアテンション割り込みの要求

対話式 Debug Tool セッション中に、必要に応じてアテンション割り込みの要求ができます。例えば、無限ループのように見える場合に停止したり、端末に大量の出力が表示されるのを停止したり、STEP コマンドの実行を停止したりできます。

アテンション割り込みと ATTENTION 条件とを混同しないでください。AT OCCURRENCE または ON ATTENTION を設定してある場合、そのブレークポイントに関連付けられたコマンドはアテンション割り込みでは実行されません。

ホストのオペレーティング・システムにより認識されたアテンション割り込みについても言語環境プログラムが認識できるようにするには、言語環境プログラムのランタイム・オプション TRAPINTERRUPT を両方とも ON に設定しておく必要があります。TEST ランタイム・オプションの test_level サブオプションは、NONE に設定しない でください。

アテンション割り込みキーは、以下の環境およびデバッグ・モードではサポートされません。

MVS の場合のみ: C の場合は、アテンション割り込みを使用するときに、SET INTERCEPT ON FILE stdout を使用して、端末へ送られるメッセージを代行受信します。アテンション割り込みの後はメッセージが端末に届かなくなるので、この処置が必要です。

動的デバッグ機能の場合のみ: この動的デバッグ機能は、コンパイル時に挿入されるフックがあるプログラムに対してのみ、アテンション割り込みキーをサポートします。

該当するキーは、必ずしもすべてのキーボードで ATTN と印が付いている わけではありません。以下のキーがよく使われます。

アテンション割り込み を要求すると、Debug Tool に制御が渡されます。

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

フルスクリーン・モード・デバッグ・セッションの終了

ユーザー・プログラムのデバッグを終了したら、以下のいずれかの方法でフルスクリーン・デバッグ・セッションを終了します。

方法 A
  1. PF3 (QUIT) を押すか、コマンド行で QUIT を入力する。
  2. 要求確認の Y を入力して Enter を押す。プログラムの実行が停止します。

CICS 非言語環境プログラムのアセンブラー・プログラムまたは非言語環境プログラムの COBOL プログラムをデバッグしている場合、QUIT は、Debug Tool を終了させ、ABEND 4038 でタスクを終了させます。

方法 B
  1. QQUIT コマンドを入力する。 デバッグ・セッション終了の要求を確認するプロンプトは出されません。プログラムの実行が停止します。

CICS 非言語環境プログラムのアセンブラー・プログラムまたは非言語環境プログラムの COBOL プログラムをデバッグしている場合、QUIT は、Debug Tool を終了させ、ABEND 4038 でタスクを終了させます。

方法 C
  1. QUIT DEBUG または QUIT DEBUG TASK (CICS のみ) コマンドを入力する。
  2. 要求確認の Y を入力して Enter を押す。プログラムは実行を続行します。

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


1.
Enterprise COBOL for z/OS バージョン 4.1 では、常にシンボル・テーブルが生成されます。


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

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