Debug Tool コマンド
コマンドおよびキーワードは省略できます。いくつかのコマンドで表示された省略形は、最小限の省略形です。ただし、最小限の省略形または、最小限の省略形からキーワードの完全なスペルまでの任意のストリングを使用することができ、それらはすべて有効です。これは、コマンドのすべてのキーワードに当てはまります。
フルスクリーン・モードでデバッグしている場合、PF1 を押すか、
コマンド行に疑問符 (?) を入力すると、Debug Tool コマンド構文に関するヘルプを表示することが
できます。
これによって、Debug Tool コマンドがすべてログ・ウィンドウに
リストされます。
コマンドのオプションのリストを表示するには、コマンドの
一部に続けて疑問符を入力します。
下の表は、Debug Tool のコマンドを要約したものです。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
? コマンド
? コマンドで「ログ」ウィンドウに Debug Tool コマンドのリストが表示されます。
使用上の注意
次の場合、Debug Tool は、? コマンドが入力された後に構文ヘルプを表示しません。
- Debug Tool の SYSTEM および TSO コマンドの後に ? コマンドを続けても、
構文ヘルプは表示されません。
構文ヘルプが表示される代わりに、? がシステム・コマンドの一部としてホストに送信されます。
- COMMENT コマンドの後に ? コマンドを続けても、構文ヘルプは表示されません。
- SET PFx コマンドは ? を「コマンド」オペランドとして受け入れます。
この場合、構文ヘルプは表示されません。
ALLOCATE コマンド
ALLOCATE コマンドは、ファイルを既存のデータ・セット、既存のデータ・セットの連結、または一時データ・セットに割り振ります。
- FILE ddname
- ファイルの DD 名。
- DSNAME dsn
- 既存のデータ・セットの名前。
- DSNAME (dsn、dsn、...)
- 連結する必要のある既存のデータ・セットの名前。
- TEMP
- 一時データ・セットが割り振られます。
- TRACKS (primspc、secspc、...)
- 一時データ・セットに対して割り振るプライマリー・スペース (primspc) およびセカンダリー・スペース (secspc) のためのトラックの数。
- OLD
- データ・セットのファイル属性指定を OLD に設定します。
- SHR
- データ・セットのファイル属性指定を SHR に設定します。
- MOD
- データ・セットのファイル属性指定を MOD に設定します。
使用上の注意
このコマンドは、CICS® では使用できません。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
ANALYZE コマンド (PL/I)
ANALYZE コマンドは、式の評価プロセス、および中間結果のデータ属性を表示します。式の実行結果の表示には、LIST コマンドを使用してください。
- EXPRESSION
- 付随する expression を次の観点から評価するように要求します。
- 式の評価中にそれぞれのエレメントの属性はどうなっているか。
- 式のエレメントの大きさと範囲はどうなっているか (該当する場合)。
- 式の処理過程で作成される中間結果の属性はどうなっているか。
- expression
- 有効な Debug Tool の PL/I の式。
使用上の注意
- SET SCREEN ON が有効で、プログラム内の式に対して ANALYZE EXPRESSION を出したい場合は、式が記述されている行のどこかの文字を上書きすることによって、式をソース・ウィンドウからコマンド行に持っていくことができます。その上で、コマンド行で編集を行って、必要な ANALYZE EXPRESSION コマンドを作成します。
- SET WARNING ON が有効になっている場合、Debug Tool は、式の評価中に発生する可能性のある、PL/I の計算条件についてのメッセージを表示します。
- PL/I コンパイラーは GRAPHIC ストリングの連結をサポートしていますが、Debug Tool はこの連結をサポートしていません。
- ANALYZE コマンドは、Enterprise PL/I プログラムのデバッグには使用できません。
- ANALYZE コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
- ANALYZE コマンドは、逆アセンブルされたプログラムのデバッグ中は使用できません。
例
この例は、次のプログラム・セグメントに基づいています。
DECLARE lo_point FIXED BINARY(31,5);
DECLARE hi_point FIXED BINARY(31,3);
DECLARE offset FIXED DECIMAL(12,2);
DECLARE percent CHARACTER(12);
lo_point = 5.4; hi_point = 28.13; offset = -6.77;
percent = '18';
次に示すのは、ANALYZE EXPRESSION を出すことによって
作成される情報の例です。特に次の例では、データの精度と大きさが混在している場合に、式の実行の中間結果と最終結果にどのような
影響があるかを示しています。
ANALYZE EXPRESSION ( (hi_point - lo_point) + offset / percent )
>>> Expression Analysis <<<
( HI_POINT - LO_POINT ) + OFFSET / PERCENT
| HI_POINT - LO_POINT
| | HI_POINT
| | FIXED BINARY(31,3) REAL
| | LO_POINT
| | FIXED BINARY(31,5) REAL
| FIXED BINARY(31,5) REAL
| OFFSET / PERCENT
| | OFFSET
| | FIXED DECIMAL(12,2) REAL
| | PERCENT
| | CHARACTER(12)
| FIXED DECIMAL(15,5) REAL
FIXED BINARY(31,17) REAL
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
代入コマンド (アセンブラーおよび逆アセンブリー)
代入コマンドは、式の値を指定されたメモリー・ロケーションまたはレジスターに代入します。
- receiver
- 有効な Debug Tool アセンブラー参照またはアセンブラー式。
- receiverlen
- 左および右大括弧 (<, >) で囲まれた有効な Debug Tool アセンブラー参照およびアセンブラー式。この参照の値は、receiver の長さとして使用されます。
- sourceexpr
- 有効な Debug Tool アセンブラー式。
代入規則
アセンブラーの代入は算術代入、ビット代入、または文字代入です。
- 算術代入では、埋め込み (通常はゼロで) および左方の切り捨てが行われます。ソースが F または H 型の場合、算術ステートメントでは符号ビットで埋め込まれます。
- ビット代入では、埋め込み (ゼロで) および右方の切り捨てが行われます。
- 文字代入では、埋め込み (ブランクで) および右方の切り捨てが行われます。
次の表に、ソースおよび受け取り側のデータ型からの代入型の決定方法を示します。この表では、次の定義を使用しています。
- ?
- 不明の型を示します。例えば、R1->+2。
- *
- 任意の型または長さを示します。
- 算術
- 算術代入を示します。埋め込みは、左方が符号ビットで行われます。
- ビット
- ストリング代入 (ゼロで埋め込み) を示します。
- 文字
- ストリング代入 (ブランクで埋め込み) を示します。
- 16 進浮動小数点
- 16 進浮動小数点の代入を示します。
- ストリング代入
- Min(receiver length,
source length) に対応するバイト数が、ソースから受け取り側に移動されます。受け取り側の方が長い場合は、埋め込まれます。ソースの方が長い場合は、切り捨てられます。埋め込みおよび切り捨ては、すべて右方です。
- 移動
- 受け取り側の長さに対応するバイト数が、受け取り側のロケーションに直接移動されます。
- エラー
- 無効であるとのフラグが立てられたステートメント。
表 2. 代入規則は、ソースおよび受け取り側の型により異なります。
| 受け取り側 |
ソース |
代入型 |
埋め込みまたは切り捨て |
| 型 |
長さ |
型 |
長さ |
| * |
1 - * |
? |
? |
移動 |
なし |
| F、H、A、Y |
1 - 4 |
F、H、A、Y、
X、B、C |
1 - 4 |
算術 |
左 |
| E、D、L |
4、8、16 |
16 進浮動小数点 |
右 - 0 |
| P、Z |
1 - * |
算術 |
|
| X、B、C |
>4 |
エラー |
|
| その他 |
その他 |
エラー |
|
| X |
1 - 4 |
F、H、A、Y |
1 - 4 |
算術 |
左 |
| P、Z |
1 - * |
算術 |
|
| 1 - * |
X、B |
1 - * |
ビット |
右 - 0 |
| C |
ビット |
右 - 0 |
| その他 |
|
エラー |
|
| C |
1 - 4 |
F、H、A、Y |
1 - 4 |
算術 |
左 |
| P、Z |
1 - * |
算術 |
|
| 1 - * |
X、B |
1 - * |
ビット |
右 - 0 |
| C |
文字 |
右 - ブランク |
| その他 |
|
エラー |
|
| P、Z |
1 - * |
P、Z |
1 - * |
パック |
|
| F、H、A、Y、
X、B、C |
1 - 4 |
パック |
|
| E、D、L |
4、8、16 |
16 進浮動小数点 |
右 - 0 |
| E、D、L |
4、8、16 |
X |
= |
移動 |
なし |
| E、D、L |
4、8、16 |
16 進浮動小数点 |
右 - 0 |
| F、H、A、Y |
1 - 4 |
16 進浮動小数点 |
右 - 0 |
| P、Z |
1 - * |
16 進浮動小数点 |
右 - 0 |
| ? |
1 - 4 |
F、H、A、Y |
1 - 4 |
算術 |
左 |
| 1 - * |
X、B、C |
1 - * |
ビット |
右 - 0 |
| その他すべて |
エラー |
|
使用上の注意
- 受け取り側の式に暗黙的な長さがない場合は、長さのオーバーライドを指定して不等号括弧 (<>) で囲む必要があります。
例えば、%R1->+10 <4> = 20; では、受け取り側の式に暗黙的な長さがないので、明示的な長さ式が必要です。
ただし、X=X+1; (ここで X は X DS F として定義) には、通常は明示的な長さ指定はありません。
- 代入コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
例
- 値 6 を変数 x に代入します。
x = 6 ;
- X の値を 5 だけ増分します。
X = X + 5 ;
- R5 に name_table のアドレスを代入します。
%R5 = addr'name_table ;
- 変数 prg_name に文字ストリング値 'MYPROG' を代入します。
prg_name = 'MYPROG' ;
- X の値を、R8 の内容からオフセット 8 の場所の 4 バイトに代入します。
%R8->+8 <l'x> = x;
- R8 (R8 はプログラムで使用される等価レジスター) の内容でポイントされる 14 バイトのストリングを、R2 でポイントされる場所から 6 バイト・オフセットされた場所に移動します。
%R2->+6 <14> = R8->+0;
- R6 でポイントされる 32 バイトをゼロに設定します。
%R6->+0 <X'20'> = X'00';
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
代入コマンド (非言語環境プログラム の COBOL)
代入コマンドは、指定された参照に式の値を割り当てます。このコマンドは、COBOL
の COMPUTE ステートメントと等価です。
- receiver
- アポストロフィ (') で囲まれた、有効な Debug Tool 非言語環境プログラム の COBOL 参照。
- sourceexpr
- アポストロフィ (') で囲まれた、有効な Debug Tool 非言語環境プログラム の COBOL 式。
使用上の注意
- receiver が算術計算変数である場合、sourceexpr は、receiver と同じ長さの 16 進数ストリングになります。
Debug Tool は正しい内部表記が使用されていることを前提として、16 進値を直接
receiver に移動します。
- receiver が非数値ストリングである場合、sourceexpr は、どのような長さの 16 進数ストリングにもなり得ます。
sourceexpr の長さが receiver の長さよりも短い場合、receiver
には、右側に 2 進ゼロが埋め込まれます。
- receiver が COBOL INDEX 変数である場合、Debug Tool は sourceexpr
が添え字の値であると想定して、値を receiver に格納する前に適切なオフセット
に変換します。
- 代入コマンドは、PLAYBACK コマンドを使用して記録されたステートメント
を再生している間は使用できません。
例
- 値 6 を変数 x に代入します。
'x' = '6' ;
- X の値を 5 だけ増分します。
'X' = 'X + 5' ;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
代入コマンド (PL/I)
代入コマンドは、指定された参照に式の値を割り当てます。
- reference
- 有効な Debug Tool の PL/I の参照。
- expression
- 有効な Debug Tool の PL/I の式。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT コマンド
AT コマンドは、ブレークポイントまたは 1 組のブレークポイントを定義します。ブレークポイントを定義することによって、プログラムの実行を一時的に中断し、Debug Tool を使用して別のタスクを実行することができます。AT コマンドに AT 条件を定義することによって、Debug Tool がいつ制御を得るかを指示します。また、AT コマンドには、AT 条件が発生したときに、Debug Tool が行う処置も指定します。
指定された AT 条件のブレークポイントは、別の AT コマンドが
同じ AT 条件についての新しい処置を確立するまで、または CLEAR コマンドが確立されたブレークポイントを除去するまで
確立されたままです。通知メッセージは、前者の場合に出されます。ブレークポイントには、デバッグ・セッションの間に最新ではなくなってしまうものも
あり、これらのブレークポイントは、Debug Tool によって自動的に消去されます。
MVS バッチ、TSO、および CICS プログラムでは、SET SAVE および SET RESTORE コマンドを
使用して、Debug Tool のセッション間のブレークポイントを自動的に保存および復元できます。
その他のすべてのプログラムでは、SET SAVE および RESTORE コマンドを使用して、セッション間のブレークポイントを自動的に保存し、
手動で復元できます。
For CICS only: ブレークポイントまたはモニター仕様の保存および復元を制御するために SET SAVE および SET RESTORE コマンドを
使用せず、フルスクリーン・モードのデバッグ・セッションを開始するために DTCN プロファイルを
使用すると、Debug Tool は、DTCN プロファイルが削除されるまで、そのセッションの後続のブレークポイントを保持します。
- APPEARANCE ブレークポイント
- CALL ブレークポイント
- DELETE ブレークポイント
- ENTRY ブレークポイント
- EXIT ブレークポイント
- GLOBAL APPEARANCE ブレークポイント
- GLOBALCALL ブレークポイント
- GLOBAL DELETE ブレークポイント
- GLOBAL ENTRY ブレークポイント
- GLOBAL EXIT ブレークポイント
- GLOBAL LABEL ブレークポイント
- GLOBAL LOAD ブレークポイント
- GLOBAL STATEMENT/LINE ブレークポイント
- LABEL ブレークポイント
- LOAD ブレークポイント
- OCCURRENCE ブレークポイント
- STATEMENT/LINE ブレークポイント
- TERMINATION ブレークポイント
据え置き AT ENTRY ブレークポイントが検出されなかった場合、その保存も復元も行われません。
最適化 COBOL プログラムの場合: 最適化されたプログラムでブレークポイントに到達する順序は、一般的に最適化されていないプログラムと同じです。最適化の影響によって差が出る場合があります。
次の表は、AT コマンドの形式を要約しています。
使用上の注意
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
every_clause 構文
ほとんどの AT コマンドの形式には、オプションの every_clause が含まれ、状況が発生した回数に基づいて
指定された処置が行われるかどうかを制御します。例えば、ブレークポイントに 10 回達するたびに処置を行わなければならない場合が
あります。
every_clause の構文は次のとおりです。
- EVERY integer
- ブレークポイントをとる頻度を指定します。例えば、EVERY 5 は、AT 条件が 5 回満たされるたび
に Debug Tool を起動することを意味します。デフォルトは EVERY 1 です。
- FROM integer
- いつ Debug Tool を呼び出すかを指定します。例えば、FROM 8 は、AT 条件が 8 回満たされるまで
は Debug Tool を起動しないことを意味します。FROM 値を指定しない場合、EVERY 値と同じ値になります。
- TO integer
- いつ Debug Tool 呼び出しを終了するかを指定します。例えば、TO 20 は、AT 条件が 20 回満たされた以降は
Debug Tool を起動してはならないことを意味します。TO 値が指定されない場合、every_clause は無限に続きます。
使用上の注意
- FROM integer は TO integer を
超えることはできないため、すべての整数は >=1 でなければなりません。
- EVERY そのものは EVERY 1 FROM 1 と同じです。
- EVERY、FROM、および TO 文節は、どのような
順序ででも指定することができます。
例
- ステートメント 50 に 3 回達するごとに中断し、48 回目で開始し、59 回目の後に終了させます。ブレークポイント処置は、ステートメント 50 に 48 回目、51 回目、54 回目、および 57 回目に達するごとに行われます。
AT EVERY 3 FROM 48 TO 59 STATEMENT 50;
- mystruct と命名された構造体の構造フィールド member が 5 回変更されると、変更が行われたことを示すメッセージを印刷し、その新しい値をリストします。また、CHANGE ブレークポイントも消去します。現行のプログラム言語の設定は C です。
AT FROM 5 CHANGE mystruct.member {
LIST ("mystruct.member has changed.
It is now", mystruct.member);
CLEAR AT CHANGE mystruct.member;
}
AT ALLOCATE (PL/I) コマンド
AT ALLOCATE は、名前指定された被制御変数または集合体に対する
ストレージが PL/I によって動的に割り振られると、Debug Tool に制御を渡します。AT ALLOCATE ブレークポイントが発生した時点では、割り振り済みストレージは初期設定されていません。制御がプログラムに戻ると、初期設定を実行します。
- identifier
- 割り振りが行われると Debug Tool の呼び出しを起動する、PL/I 被制御変数の名前。この変数が構造の名前である場合、大構造の名前のみが指定可能です。
- *
- ALLOCATE ごとにブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- AT ALLOCATE コマンドは Enterprise PL/I プログラムのデバッグには使用できません。
- AT ALLOCATE コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
例
- 大構造 area_name の割り振りで、割り振りを得たストレージの
アドレスを表示します。
AT ALLOCATE area_name LIST ADDR (area_name);
- temp に対するストレージは割り振ってあり、temp に
変更があると、変更内容をリストします。
DECLARE temp CHAR(80) CONTROLLED INITIAL('abc');
AT ALLOCATE temp;
BEGIN;
AT CHANGE temp;
BEGIN;
LIST (temp);
GO;
END;
GO;
END;
GO;
temp = 'The first time.';
temp = 'The second time.';
temp = 'The second time.';
temp にストレージが割り振られた時点では、temp の値は
初期設定されていません。INITIAL 句で、'abc' の値に初期設定すると、最初
の AT CHANGE が認識され、'abc' の値がリストされます。3 行の代入ステートメントで temp の
値を繰り返し設定していますが、3 番目の代入では値は変わりません。この例では、ALLOCATE ブレークポイントが 1 回、CHANGE ブレークポイント
が 3 回発生します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT APPEARANCE コマンド
指定したコンパイル単位がストレージに見つかると、Debug Tool に制御を渡します。通常、新しくロード・モジュールをロードしたときに発生します。しかし、メインのコンパイル単位が COBOL で作成されているモジュールの場合、ロードのあとで最初にコンパイル単位に入るまでは、ブレークポイントは発生しません。
- *
- すべてのコンパイル単位の APPEARANCE のたびにブレークポイントを
セットします。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- このブレークポイントを親エンクレーブで設定した場合、アプリケーションが子エンクレーブで実行中でも、ブレークポイント・コマンドによってブレークポイントが起動され、処理されます。
- コンパイル単位がロード・モジュール名によって修飾される場合、指定されたロード・モジュール内に含まれるコンパイル単位については、AT APPEARANCE ブレークポイントのみが認識されます。例えば、ロード・モジュール loady 内の
コンパイル単位 cux が現れても、ブレークポイント AT APPEARANCE loadx::>cux は起動されません。
- コンパイル単位がロード・モジュール名によって修飾されない 場合、現行の
ロード・モジュール修飾は使用されません。
- 指定したコンパイル単位を Debug Tool が初めて認識したときに、Debug Tool は制御を受け取ります。これが発生するのは、そのコンパイル単位を参照しているプログラムに
達した場合です。これは、プログラムを操作 (例えば、ブレークポイントを設定) できるほど遅れて発生しますが、プログラムの実行がまだ始まらないほど早く発生します。また、C では、静的変数も参照可能です。
- AT APPEARANCE コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
- AT APPEARANCE は、未知のコンパイル単位にブレークポイントを設定する場合に
有用です。適切な修飾子を使用し、APPEARANCE ブレークポイントに関連付けられた
コマンド・リストにブレークポイントを組み込むことにより、現在 Debug Tool に認識されていない
位置にブレークポイントを設定することができます。ただし、コンパイル単位では APPEARANCE ブレークポイントはどのような場合でも 1 個所しか
設定できないため、未知のコンパイル単位のすべてのブレークポイントを
単一の APPEARANCE ブレークポイントの設定に含めることが必要になります。
- CICS 以外のアプリケーションでは、AT APPEARANCE ブレークポイントはプロセスの終了で消去されます。
- アセンブラーまたは逆アセンブルされたプログラムのデバッグで AT APPEARANCE コマンドを入力する前に、SET ASSEMBLER ON または SET DISASSEMBLY ON コマンドを入力します。
- For C and C++ only: コンパイル単位がロードの時点で認識されるため、ロードされたモジュール内にあるコンパイル単位の
AT APPEARANCE は起動されません。
- For C, C++, and PL/I only: APPEARANCE ブレークポイントは、Debug Tool が
指定されたコンパイル単位をストレージで見つけたときに起動されます。ただし、APPEARANCE ブレークポイントは、コンパイル単位が
ロードされる前に設定されていないと起動されません。
APPEARANCE ブレークポイントが起動された時点では、モニターされているコンパイル単位は、現在実行中のコンパイル単位にはなっていません。
新しいコンパイル単位がストレージに現れて
APPEARANCE ブレークポイントを起動したときに現行コンパイル単位になるコンパイル単位は、
実行が新しいコンパイル単位に渡されるまでは現行コンパイル単位のままになります。
- For COBOL only: APPEARANCE ブレークポイントは、Debug Tool が
指定されたコンパイル単位をストレージで見つけたときに起動されます。ただし、APPEARANCE ブレークポイントは、コンパイル単位が呼び出される前に
設定されていないと、起動されません。
APPEARANCE ブレークポイントが起動された時点では、モニターされているコンパイル単位は、現在実行中のコンパイル単位にはなっていません。
新しいコンパイル単位がストレージに現れて
APPEARANCE ブレークポイントを起動したときに現行コンパイル単位になるコンパイル単位は、
実行が新しいコンパイル単位に渡されるまでは現行コンパイル単位のままになります。
- For CICS only: AT APPEARANCE ブレークポイントは、アプリケーションの最後のプロセスの
終了で消去されます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT CALL コマンド
アプリケーションが、指定した入り口点への呼び出しを試みたときに、Debug Tool に制御を渡します。CALL ブレークポイントを使用すると、終了していないサブルーチンの実行を
シミュレートしたり、ダミーあるいは stub プログラムを作成したり、変数に模擬結果値を設定したりして、コード全体のテストが完了する前に
コードの部分ごとのテストをすることができます。
- entry_name
- 有効な外部入り口点名定数またはゼロ (0)。0 を指定できるのは、現行のプログラム言語設定が C または PL/I の場合のみです。
- *
- すべての入り口点の CALL のたびにブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- AT CALL は、サブルーチン入り口点ではなく呼び出し自体を
インターセプトします。TEST または DEBUG コンパイラー・オプションの PATH サブオプションを指定してコンパイルした、C、COBOL、および PL/I のプログラムでは、呼び出しのターゲットが未解決になっていてもそれらのターゲットを識別します。
- C、C++、あるいは PL/I 組み込み関数の呼び出しに関して AT CALL で設定したブレークポイントは起動されません。
- AT CALL は、コンパイル時に Debug Tool に認識
される入り口点の呼び出しをインターセプトします。入り口変数の呼び出しはインターセプトされません。ただし、現行プログラム言語の設定が C または COBOL のいずれ
か (TEST ランタイム・オプションによってコンパイルされている) の場合は除きます。
- AT CALL 0 は、現行プログラム言語の設定が C また
は PL/I (TEST ランタイム・オプションによってコンパイルされている) の
場合、未解決の入り口点への呼び出しをインターセプトします。
- AT CALL では、GO BYPASS または GOTO を使用して
ターゲット・プログラムのインターセプトあるいはバイパスができます。通常の GO または STEP によって再開される場合、呼び出しを行うことによって実行は再開します。
- ブレークポイントを親エンクレーブで設定すると、アプリケーションが子エンクレーブで実行中でも、ブレークポイント・コマンドによってブレークポイントが起動され、処理されます。
- CICS アプリケーションをデバッグしているときは、CICS アプリケーションの
最後のプロセスの終了で、ブレークポイントは消去されます。CICS 以外のアプリケーションをデバッグしているときは、プロセスの終了で消去されます。
- AT CALL コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
- AT CALL コマンドは、逆アセンブリー・プログラムのデバッグ中には使用できません。
- Debug Tool は、非言語環境プログラム の COBOL プログラムまたは VS COBOL プログラムのデバッグ時は AT CALL コマンドをサポートしません。
- For C and C++ only: 以下の使用上の注意が適用されます。
- ご使用の C および C++ プログラムに未解決の入り口点または入り口変数がある場合には、AT CALL 0 コマンドを入力してください。
- C プログラムで AT CALL コマンドを使用してブレークポイントを設定できるようにするには、プログラムを次のいずれかの方法でコンパイルする必要があります。
- TEST コンパイラー・オプションの PATH または ALL サブオプションを指定します。
- DEBUG コンパイラー・オプションの PATH または ALL サブオプションを指定します。
- C++ プログラムで AT CALL コマンドを使用してブレークポイントを設定できるようにするには、プログラムを次のいずれかの方法でコンパイルする必要があります。
- TEST コンパイラー・オプションを指定します。
- DEBUG コンパイラー・オプションの PATH または ALL サブオプションを指定します。
- For COBOL only: 以下の使用上の注意が適用されます。
- entry_name でメソッドもプロシージャーも参照可能です。
- entry_name に大/小文字の区別がある場合は、引用符 (") またはアポストロフィ (') で囲んでください。
- COBOL プログラムで AT CALL コマンドを使用してブレークポイントを設定できるようにするには、正しい TEST コンパイラー・サブオプションを使用してプログラムをコンパイルする必要があります。以下のリストは、対応する COBOL コンパイラー・バージョンに使用する TEST コンパイラー・サブオプションの説明です。
- Enterprise COBOL for z/OS® バージョン 4.1 には、TEST コンパイラー・オプションの HOOK または NOHOOK サブオプションを指定します。
- 次のコンパイラーには、TEST コンパイラー・オプションの PATH、ALL、または NONE サブオプションを使用します。
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390® & VM バージョン 2
以下のコンパイラーおよびサブオプションのいずれかによってプログラムをコンパイルした場合は、AT CALL entry_name コマンドを使用できません。
- Enterprise COBOL for z/OS バージョン 4.1 では、TEST コンパイラー・オプションの NOHOOK サブオプション
- 次のコンパイラーでは、TEST コンパイラー・オプションの NONE サブオプション
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390 & VM バージョン 2
その代わりに、AT CALL * を使用します。
- COBOL プログラムで AT CALL 0 を使用することはできません。ただし、COBOL は、たとえ未解決であっても CALL のターゲットを
識別することができ、また入り口変数を識別してインターセプトすることができます。したがって、COBOL プログラムの場合には、必ずしもすべての外部参照が解決されている必要
はありません。
- For PL/I only: 以下の使用上の注意が適用されます。
- PL/I で CALL ブレークポイントを設定できるようにするには、TEST コンパイラー・オプションの PATH また
は ALL サブオプションを使用してプログラムをコンパイルする必要があります。AT CALL 0 はサポートされており、未解決の外部参照に関して呼び出されます。
- PL/I の変数宣言の INITIAL 属性内の CALL ステートメントは、AT CALL ブレークポイントを起動しません。
- アセンブラーの場合のみ: CALL ステートメントは
内部および外部ルーチンの呼び出しにすることができます。CALL ステートメントは、命令コード BALR、BASR、BASSM、BAL、BAS、BRASL、SVC、または
PC のいずれかに定義されます。
コマンド AT CALL MVS を使用すると、SVC または PC 命令で Debug Tool 制御を与えることができます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT CHANGE コマンド (フルスクリーン・モード、行モード、バッチ・モード)
プログラムまたは Debug Tool コマンドが、指定の変数の値か
あるいは記憶場所を変更した場合に、Debug Tool に制御を渡します。
- condition
- 有効な Debug Tool の条件式。
- reference
- 現行のプログラム言語で有効な Debug Tool 参照。
- 'reference'
- 現行のプログラム言語が非言語環境プログラム の COBOL である場合に有効な Debug Tool 参照。
- %STORAGE
- AT CHANGE の対象を選択する代替方法となる組み込み関数。
- address
- 変更の発生を監視するストレージの開始アドレス。
- length
- 変更の発生を監視するストレージのバイト数。これは、正の整数定数でなければなりません。デフォルトは 1 です。
- command
- 有効な Debug Tool コマンド。リモート・デバッグ・モードを使用する場合、指定できるコマンドはリモート・デバッグ・モードでサポートされるコマンドだけです。
使用上の注意
- COBOL レベル 88 変数に AT CHANGE コマンドを使用するには、言語環境プログラム APAR PK12834 用の PTF を z/OS バージョン 1 リリース 6 およびバージョン 1 リリース 7 にインストールしておく必要があります。
- OPEN OUTPUT または EXTEND である BLOCKED QSAM ファイルのファイル・レコードに AT CHANGE ブレークポイントが
設定される場合、そのブレークポイントは WRITE ステートメントの使用時に期待通りに機能しないことがあります。
この場合のブレークポイントの動作は、ファイル・レコードがデータ管理バッファーにマップされているために予測することができません。
このような場合に AT CHANGE の動作を予測可能にするには、SAME RECORD AREA 文節を使用するようにファイルをセットアップします。
- データは、ストレージ内にある場合にのみ監視されます。
したがって、コンパイラーの最適化処理の結果としてレジスターに保持されている値は監視できません。
さらに、Debug Tool 変数の %GPRn、%Rn、%FPRn、%LPRn、%EPRn、
およびレジスターを表すアセンブラーまたは逆アセンブル・シンボルも監視できません。
- 監視の対象はバイト全体です。バイトのなかのビットまたは
ビット・ストリングを取り出しての監視はできま
せん。
- AT CHANGE ブレークポイントはストレージのアドレスと長さによって識別される
ため、ストレージ内の同じ区域 (同じアドレスと長さ) を指定した 2 つ
の AT CHANGE ブレークポイントをもつことはできません。すなわち、ストレージのアドレスと長さが同じである場合、AT CHANGE コマンドは
前の AT CHANGE コマンドに置き換わります。ただし、その他のオーバーラップは無視され、ブレークポイントは 2 つの別々の変数を
区切るものと見なされます。例えば、ストレージのアドレスが同じでも長さが異なると、AT CHANGE コマンドは前の AT CHANGE を置き換えません。
- 複数の AT CHANGE ブレークポイントが同時に起動されると、AT CHANGE ブレークポイントは入った順に起動されます。
ただし、あるブレークポイントの起動が原因で別のブレークポイントによって監視される変数が変更される場合、その起動の順序は、必ずしも最初に入った順にはなりません。例えば、次のようになります。
AT CHANGE y LIST y;
AT CHANGE x y = 4;
GO;
プログラム内で次に実行されるステートメントによって x の値が変更されると、Debug Tool が制御を獲得したときに、CHANGE x ブレークポイントが起動されます。
CHANGE x の処理によって、y の値は変更します。CHANGE x が起動されたことが通知された後に GO; と
入力すると、Debug Tool は、プログラムに制御を戻す前に、CHANGE y ブレークポイントを起動します。
この場合、CHANGE y ブレークポイントが先に入力されましたが、CHANGE x ブレークポイントの方が先に起動されました (これによって、CHANGE y ブレークポイントが起動されるため)。
- %STORAGE は、Debug Tool の組み込み関数で、AT CHANGE コマンドでのみ使用可能です。
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了で CHANGE %STORAGE ブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- 参照された変数は、AT CHANGE ブレークポイントが定義された時点で
存在しなければなりません。AT CHANGE を AT ENTRY に組み込んで、これを確認することができます。
- AT CHANGE ブレークポイントは、指定された変数が定義されなくなった時点で
自動的に除去されます。C の静的変数に対する AT CHANGE は、変数を定義しているモジュールが
ストレージから除去されたときに、除去されます。malloc() または calloc() を使用して割り振られる C ストレージでは、動的ストレージが free() によって解放された場合に、このような状況が生じます。
- 変更は即時には検出されませんが、ストレージ、変数値、または論理条件を変更できる
コマンドが完了した場合に限り検出されます。
単一参照 を指定すれば、WHEN 条件の指定によって CHANGE 条件が発生する環境を制限できます。
監視される変数を変更する Debug Tool コマンドを入力すると、WHEN 条件が指定されていない場合に、CHANGE 条件が即時に発生します。
WHEN 条件が指定されている場合、CHANGE 条件は、変数が変更されて、WHEN 条件が true の場合にのみ発生します。SET CHANGE コマンドを使用すれば、チェックの頻度を多くしたり
少なくしたりすることができます。
- C および C++ AT CHANGE ブレークポイント要件
- 変数は左辺値または配列でなければなりません。
- 変数がパラメーターの場合または変数のストレージ・クラスが auto で
ある場合には、その変数をアクティブなブロック内で宣言しなければなりません。
- 静的変数について定義された CHANGE ブレークポイントは、その変数が
宣言されたファイルがアクティブでなくなると、自動的に除去されます。外部変数の場合に定義された CHANGE ブレークポイントは、その変数が
宣言されたモジュールがアクティブでなくなると、自動的に除去されます。
- reference がポインターの場合、Debug Tool は、そのポインターが指定するアドレスにあるストレージの内容が変更されると停止します。
- COBOL の AT CHANGE ブレークポイントの要件
- ストレージ・アドレスを使用する AT CHANGE は、グループ内の
可変サイズ・エレメントまたはサブグループの後に続くデータ項目を参照してはなりません。可変サイズ・エレメントがサイズを変更した場合、COBOL はグループを動的に再マップします。
- 可変サイズのエレメントの割り振り済みストレージに続く変数
の検査の際には注意が必要です。このエレメントのサイズが変更されたときには、COBOL は動的にそのエレメントのストレージを再マップします。これにより、検査したい変数のアドレスが変更されることがあります。
- COBOL ファイル・レコードの CHANGE ブレークポイントは、そのファイルがオープンされる前に設定することはできません。
- 変数がローカル・ストレージ・セクションにある場合、アクティブなブロックで宣言する必要があります。
- PL/I の AT CHANGE ブレークポイントの要件
- 基底変数または被制御変数の場合は、それらが解放されるとき
に、また、パラメーターおよび AUTOMATIC 変数の場合は、それらが宣言されているブロックがアクティブでなくなったときに、それぞれ CHANGE ブレークポイントが除去されます。
- CHANGE は、単一スカラー・エレメントの構造体のみをモニターします。複数のスカラー・エレメントを含んでいる構造体は、サポートされていません。
- 変数は、現行ブロックに関して有効な参照をしていることが必要です。
- 参照している変数が存在しなくなると、ブレークポイントは除去されます。
- CHANGE ブレークポイントは、被制御変数の現行世代に割り振られたストレージを
モニターします。その後に新世代の割り振りがなされても、モニターされるわけではありません。
- アセンブラーまたは逆アセンブリーのプログラムの STORAGE RELEASE
マクロでストレージを解放すると、そのストレージがいつ解放されるかは検出できません。
STORAGE RELEASE マクロによって解放されたストレージに AT CHANGE ブレークポイントを
設定した場合、予期しない時点でブレークポイントが起動されるなど、予期しない結果が生じる可能性があります。
- AT CHANGE コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
- 最適化 COBOL プログラムでは、指定された変数はコンパイラー最適化により廃棄された変数であってはなりません。
- AT CHANGE コマンドでレベル 88 変数を使用すると、値の現行設定値が保存されます。
Debug Tool は、レベル 88 変数の設定値が保存済みの値から別の値に変更された場合にのみブレークポイントで停止します。
例えば、保存済みの値が TRUE で、新規の値が FALSE の場合に、Debug Tool はブレークポイントで停止します。
- AT CHANGE コマンドでレベル 88 変数を使用するには、
ユーザー (Debug Tool コマンドを使用) またはプログラムが、変数の宣言で指定された値の 1 つに変数を事前に設定しておく必要があります。
この作業を行わないと、Debug Tool の動作は予測不能になります。
- 条件を使用する場合、条件で使用される変数、またはその条件は、
ブレークポイントが設定された時点ではなく、AT CHANGE コマンドに関連付けられた場所が変更されたときに評価されます。
- 条件で使用できるのは、次の条件演算子のみです。
- =
- 2 つのオペランドの同等性を比較する。
- ¬=
- 2 つのオペランドの不等性を比較する。
- <
- 左方のオペランドが右方のオペランドより小さいか否かを判断する。
- >
- 左方のオペランドが右方のオペランドより大きいか否かを判断する。
- <=
- 左方のオペランドが右方のオペランドより小さいまたは等しいか否かを判断する。
- >=
- 左方のオペランドが右方のオペランドより大きいまたは等しいか否かを判断する。
- &
- 論理「AND」演算。
- |
- 論理「OR」演算。
- AT CHANGE コマンドを WHEN 条件とともに使用する場合、変数が変更されるたびに条件が評価されます。
条件が true に評価されると、Debug Tool は、ブレークポイントに関連付けられているコマンドの停止と実行を行います。
- Debug Tool が condition を評価したとき、その condition が無効であると、Debug Tool は以下のいずれかの処置を行います。
- SET WARNING が ON に設定されている場合、Debug Tool は停止して、condition の評価ができなかったことを示すメッセージを表示します。Debug Tool で行う処置を示すために、コマンドを入力する必要があります。
- SET WARNING が OFF に設定されている場合、Debug Tool は停止せず、condition の評価ができなかったことを示すメッセージも表示しません。Debug Tool はプログラムの実行を継続します。
- address に 8 桁を超える有効数字を指定するか、または
reference が 64 ビットのアドレス可能ストレージを参照している場合、Debug Tool は
ストレージ・ロケーションが 64 ビットのアドレス可能ストレージであると見なします。それ以外の場合、Debug Tool はストレージ・ロケーションが 31 ビットのアドレス可能ストレージであると見なします。
例
- 変数 varbl1 または varbl2 の値の変更が検出される
たびに、現行の位置を識別します。現行のプログラム言語の設定は COBOL です。
AT CHANGE (varbl1, varbl2) PERFORM
QUERY LOCATION;
GO;
END-PERFORM;
- 16 進アドレス 22222 のストレージに変更があった場合に、ログにメッセージを表示します。ストレージの 8 バイトが監視されます。現行のプログラム言語の設定は C です。
AT CHANGE %STORAGE (0x00022222, 8)
LIST "Storage has changed at hex address 22222";
- 16 進アドレス 1000 のストレージに変更があった場合に、2 つのブレークポイントを設定します。変数 x は 16 進アドレス 1000 で定義され、長さは 20 バイトです。最初のブレークポイントでは、ストレージの 20 バイトが監視されます。2 番目のブレークポイントでは、ストレージの 50 バイトが監視されます。現行のプログラム言語の設定は C です。
AT CHANGE %STORAGE (0x00001000, 20) /* Breakpoint 1 set */
AT CHANGE %STORAGE (0x00001000, 50) /* Breakpoint 2 set */
AT CHANGE x /* Replaces breakpoint 1, since x is at */
/* hex address 1000 and is 20 bytes long */
- 200 より大きな値に変数が到達したときに停止します。
AT CHANGE MYVAR WHEN MYVAR > 200 ;
MYVAR > 200 は条件です。
MYVAR の値が変更されるたびに、条件 MYVAR > 200 が評価されます。
MYVAR が変更されても AT CHANGE ブレークポイントは起動されません。
MYVAR が変更されて、さらに 条件 MYVAR > 200 が true になった
場合にのみ、AT CHANGE ブレークポイントが起動されます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT CHANGE コマンド (リモート・デバッグ・モード)
プログラムが指定の変数値を変更したときに、Debug Tool に制御を渡します。
- 'reference' または "reference"
- 現行のプログラム言語で有効な Debug Tool 参照。
使用上の注意
- AT CHANGE コマンドを入力すると、プログラムが停止した位置を基準としてブレークポイントが設定されますが、そのプログラムはソース・ビューで表示されているプログラムとは異なる場合があります。例えば、使用するプログラムがプログラム MAIN1 によって呼び出されたプログラム SUB1 で停止し、ソース・ビューにプログラム SUB1 のソースが表示されているとします。次に、デバッグ・ビューで MAIN1 をクリックして、ソース・ビューに MAIN1 のソースを表示します。コマンド AT CHANGE "Var1" を入力すると、MAIN1 の "Var1" 変数ではなく、SUB1 の "Var1" 変数に対する変更をモニターするようにブレークポイントが設定されます。
- COBOL レベル 88 変数に AT CHANGE コマンドを使用するには、言語環境プログラム APAR PK12834 用の PTF を z/OS バージョン 1 リリース 6 およびバージョン 1 リリース 7 にインストールしておく必要があります。
- OPEN OUTPUT または EXTEND である BLOCKED QSAM ファイルのファイル・レコードに AT CHANGE ブレークポイントが
設定される場合、そのブレークポイントは WRITE ステートメントの使用時に期待通りに機能しないことがあります。
この場合のブレークポイントの動作は、ファイル・レコードがデータ管理バッファーにマップされているために予測することができません。
このような場合に AT CHANGE の動作を予測可能にするには、SAME RECORD AREA 文節を使用するようにファイルをセットアップします。
- データは、ストレージ内にある場合にのみ監視されます。
したがって、コンパイラーの最適化処理の結果としてレジスターに保持されている値は監視できません。
さらに、Debug Tool 変数の %GPRn、%Rn、%FPRn、%LPRn、%EPRn、
およびレジスターを表すアセンブラーまたは逆アセンブル・シンボルも監視できません。
- 監視の対象はバイト全体です。バイトのなかのビットまたは
ビット・ストリングを取り出しての監視はできま
せん。
- AT CHANGE ブレークポイントはストレージのアドレスと長さによって識別される
ため、ストレージ内の同じ区域 (同じアドレスと長さ) を指定した 2 つ
の AT CHANGE ブレークポイントをもつことはできません。すなわち、ストレージのアドレスと長さが同じである場合、AT CHANGE コマンドは
前の AT CHANGE コマンドに置き換わります。ただし、その他のオーバーラップは無視され、ブレークポイントは 2 つの別々の変数を
区切るものと見なされます。例えば、ストレージのアドレスが同じでも長さが異なると、AT CHANGE コマンドは前の AT CHANGE を置き換えません。
- 複数の AT CHANGE ブレークポイントが同時に起動されると、AT CHANGE ブレークポイントは入った順に起動されます。
ただし、あるブレークポイントの起動が原因で別のブレークポイントによって監視される変数が変更される場合、その起動の順序は、必ずしも最初に入った順にはなりません。例えば、次のようになります。
AT CHANGE y LIST y;
AT CHANGE x y = 4;
GO;
プログラム内で次に実行されるステートメントによって x の値が変更されると、Debug Tool が制御を獲得したときに、CHANGE x ブレークポイントが起動されます。
CHANGE x の処理によって、y の値は変更します。CHANGE x が起動されたことが通知された後に GO; と
入力すると、Debug Tool は、プログラムに制御を戻す前に、CHANGE y ブレークポイントを起動します。
この場合、CHANGE y ブレークポイントが先に入力されましたが、CHANGE x ブレークポイントの方が先に起動されました (これによって、CHANGE y ブレークポイントが起動されるため)。
- 参照された変数は、AT CHANGE ブレークポイントが定義された時点で
存在している必要があります。
- AT CHANGE ブレークポイントは、指定された変数が定義されなくなった時点で
自動的に除去されます。C の静的変数に対する AT CHANGE は、変数を定義しているモジュールが
ストレージから除去されたときに、除去されます。malloc() または calloc() を使用して割り振られる C ストレージでは、動的ストレージが free() によって解放された場合に、このような状況が生じます。
- 変更は即時には検出されませんが、ストレージまたは変数値を変更する可能性があるコマンドが完了した場合に限り検出されます。
- C および C++ AT CHANGE ブレークポイント要件
- 変数は左辺値または配列でなければなりません。
- 変数がパラメーターの場合または変数のストレージ・クラスが auto で
ある場合には、その変数をアクティブなブロック内で宣言しなければなりません。
- 静的変数について定義された CHANGE ブレークポイントは、その変数が
宣言されたファイルがアクティブでなくなると、自動的に除去されます。外部変数の場合に定義された CHANGE ブレークポイントは、その変数が
宣言されたモジュールがアクティブでなくなると、自動的に除去されます。
- reference がポインターの場合、Debug Tool は、そのポインターが指定するアドレスにあるストレージの内容が変更されると停止します。
- COBOL の AT CHANGE ブレークポイントの要件
- ストレージ・アドレスを使用する AT CHANGE は、グループ内の
可変サイズ・エレメントまたはサブグループの後に続くデータ項目を参照してはなりません。可変サイズ・エレメントがサイズを変更した場合、COBOL はグループを動的に再マップします。
- 可変サイズのエレメントの割り振り済みストレージに続く変数
の検査の際には注意が必要です。このエレメントのサイズが変更されたときには、COBOL は動的にそのエレメントのストレージを再マップします。これにより、検査したい変数のアドレスが変更されることがあります。
- COBOL ファイル・レコードの CHANGE ブレークポイントは、そのファイルがオープンされる前に設定することはできません。
- 変数がローカル・ストレージ・セクションにある場合、アクティブなブロックで宣言する必要があります。
- PL/I の AT CHANGE ブレークポイントの要件
- 基底変数または被制御変数の場合は、それらが解放されるとき
に、また、パラメーターおよび AUTOMATIC 変数の場合は、それらが宣言されているブロックがアクティブでなくなったときに、それぞれ CHANGE ブレークポイントが除去されます。
- CHANGE は、単一スカラー・エレメントの構造体のみをモニターします。複数のスカラー・エレメントを含んでいる構造体は、サポートされていません。
- 変数は、現行ブロックに関して有効な参照をしていることが必要です。
- 参照している変数が存在しなくなると、ブレークポイントは除去されます。
- CHANGE ブレークポイントは、被制御変数の現行世代に割り振られたストレージを
モニターします。その後に新世代の割り振りがなされても、モニターされるわけではありません。
- アセンブラーまたは逆アセンブリーのプログラムの STORAGE RELEASE
マクロでストレージを解放すると、そのストレージがいつ解放されるかは検出できません。
STORAGE RELEASE マクロによって解放されたストレージに AT CHANGE ブレークポイントを
設定した場合、予期しない時点でブレークポイントが起動されるなど、予期しない結果が生じる可能性があります。
- 最適化 COBOL プログラムでは、指定された変数はコンパイラー最適化により廃棄された変数であってはなりません。
- AT CHANGE コマンドでレベル 88 変数を使用すると、値の現行設定値が保存されます。
Debug Tool は、レベル 88 変数の設定値が保存済みの値から別の値に変更された場合にのみブレークポイントで停止します。
例えば、保存済みの値が TRUE で、新規の値が FALSE の場合に、Debug Tool はブレークポイントで停止します。
- AT CHANGE コマンドでレベル 88 変数を使用するには、
ユーザー (Debug Tool コマンドを使用) またはプログラムが、変数の宣言で指定された値の 1 つに変数を事前に設定しておく必要があります。
この作業を行わないと、Debug Tool の動作は予測不能になります。
- reference が 64 ビットのアドレス可能ストレージを参照している場合、Debug Tool は
ストレージ・ロケーションが 64 ビットのアドレス可能ストレージであると見なします。それ以外の場合、Debug Tool はストレージ・ロケーションが 31 ビットのアドレス可能ストレージであると見なします。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT CURSOR コマンド (フルスクリーン・モード)
ステートメント・ブレークポイントを設定するためのカーソル制御方式を提供します。これは、PF キーに割り当てられた場合に最も役に立ちます。
- TOGGLE
- カーソル選択ステートメントがステートメント・ブレークポイントに割り当て済みの場合には、ブレークポイントは置換ではなく除去されるように指定します。
使用上の注意
- AT CURSOR では、every_clause または command を指定することはできません。
- セミコロンは使用しないでください。
- カーソルは、ソース・ウィンドウの実行可能ステートメントが始まる行に
置いておくことが必要です。その行の最初の実行可能ステートメントに AT STATEMENT コマンドが
生成され、実行されます (あるいは、そのステートメントが既に定義
され、TOGGLE が指定されている場合には消去されます)。最適化 COBOL プログラムでは、行の最初のステートメントは最適化の影響によって廃棄されてしまう場合があります。したがって、最初の実行可能ステートメントは、2 番目以降のステートメントである場合があります。
- AT CURSOR コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
例
PF キーを定義して、カーソル位置でブレークポイント設定値をトグルします。
SET PF10 = AT TOGGLE CURSOR;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT DATE コマンド (COBOL)
指定したブロック内の各日付処理ステートメントごとに、Debug Tool に制御を渡します。日付処理ステートメントは、日付フィールドを参照するステートメントです。すなわち、日付フィールドを参照する EVALUATE ステートメントまたは SEARCH ステートメントの WHEN 句です。
- *
- 日付処理ステートメントごとにブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- AT DATE を使用した場合に、実行が停止するのは、DATEPROC コンパイラー・オプションを
指定してコンパイルされた COBOL コンパイル単位に対してのみです。
- AT DATE コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT DELETE コマンド
正常に行われた C release()、COBOL CANCEL、PL/I RELEASE、アセンブラー DELETE マクロ、
または EXEC CICS RELEASE の完了時など、言語環境プログラム、MVS、または CICS 削除サービスによってロード・モジュールをストレージから除去するときに
Debug Tool に制御を与えます。
- *
- ロード・モジュールの DELETE のたびに、ブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- Debug Tool は、言語環境プログラム削除サービス、MVS 削除サービス、または EXEC CICS RELEASE の影響を受ける削除の場合に制御を得ます。
動的デバッグ機能が非アクティブにされるか (SET DYNDEBUG OFF コマンドを入力して)、または
SVC スクリーニングが使用不可にされている場合、MVS 削除サービスの影響を受ける削除は Debug Tool に通知されません。
SVC スクリーニングを制御する方法について詳しくは、「Debug Tool カスタマイズ・ガイド」を参照してください。
- AT DELETE で初期ロード・モジュールを指定することはできません。
- ブレークポイントを親エンクレーブで設定すると、アプリケーションが子エンクレーブで
実行中でも、コマンドによってブレークポイントが起動され、処理されます。
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了でこのブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- AT DELETE コマンドは、PLAYBACK コマンドを使用して記録されたステートメントを再生している間は使用できません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT ENTRY コマンド
指定されたブロック内の指定された入り口点でブレークポイントを定義します。
- *
- すべてのブロックの ENTRY のたびにブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。リモート・デバッグ・モードを使用する場合、指定できるコマンドはリモート・デバッグ・モードでサポートされるコマンドだけです。
- condition
- 有効な Debug Tool の条件式。
使用上の注意
- VS COBOL II プログラムでは、Debug Tool は AT ENTRY * コマンドのみをサポートします。
- Debug Tool に現在認識されていないプログラムに対して AT ENTRY ブレークポイントを指定するには、次の指示に従います。
- プログラム名が block_spec と同じ場合は、block_spec をプログラム名で修飾する必要はありません。
- プログラム名が block_spec と異なる場合は、block_spec をプログラム名で修飾する必要があります。
Debug Tool は、指定されたプログラム名に一致するプログラム名を検出すると、
ブレークポイントを設定します。
- 非アクティブになるコンパイル単位に設定されている ENTRY ブレークポイント (現行のエンクレーブ内にないもの) は、そのコンパイル単位がアクティブになるまで中断 されます。ストレージから削除されるコンパイル単位に設定された ENTRY ブレークポイントは、コンパイル単位が再ロードされるまで中断されます。
中断されたブレークポイントは、再活動化されるまで起動できません。
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了でこのブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- 取り出されたプログラムまたはロードされたプログラムが解放されると、そのプログラム内のブロックの ENTRY ブレークポイントは、据え置きブレークポイントに変換されます。
- AT ENTRY コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生している間は使用できません。
- 組み込みコンパイル・ユニットにデバッグ・データを使用できない場合、AT ENTRY コマンドを使用して、
最初のエンクレーブ以外のエンクレーブでは言語環境プログラム MAIN ルーチンへの入り口で停止することはできません。
- WHEN 条件の指定によって、AT ENTRY ブレークポイントが発生する環境を制限できます。
WHEN 条件が指定されている場合は、指定された入り口点が現行の入り口点と一致し、かつ WHEN 条件が true のときに、Debug Tool が AT ENTRY ブレークポイントで停止します。
- 条件で使用できる条件演算子は次のとおりです。
- =
- 2 つのオペランドの同等性を比較する。
- ¬=
- 2 つのオペランドの不等性を比較する。
- <
- 左方のオペランドが右方のオペランドより小さいか否かを判断する。
- >
- 左方のオペランドが右方のオペランドより大きいか否かを判断する。
- <=
- 左方のオペランドが右方のオペランドより小さいまたは等しいか否かを判断する。
- >=
- 左方のオペランドが右方のオペランドより大きいまたは等しいか否かを判断する。
- &
- 論理「AND」演算。
- |
- 論理「OR」演算。
- AT ENTRY コマンドを WHEN 条件とともに使用した場合、Debug Tool は入り口に到達するたびに条件を評価します。
条件が true に評価されると、Debug Tool は、ブレークポイントに関連付けられているコマンドの停止と実行を行います。
- Debug Tool が条件を評価するときにその条件が無効であった場合、Debug Tool は以下のいずれかの処置を行います。
- SET WARNING が ON に設定されている場合、Debug Tool は停止して、条件を評価できなかったことを示すメッセージを表示します。Debug Tool で行う処置を示すために、コマンドを入力する必要があります。
- SET WARNING が OFF に設定されている場合、Debug Tool は停止せず、条件を評価できなかったことを示すメッセージも表示しません。Debug Tool はプログラムの実行を継続します。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT ENTRY コマンド (リモート・デバッグ・モード)
指定されたブロックの入り口点でブレークポイントを定義します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT EXIT コマンド
指定されたブロック内の指定された出口点でブレークポイントを定義します。
- *
- すべてのブロックの EXIT のたびにブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- VS COBOL II プログラムでは、Debug Tool は AT EXIT * コマンドのみをサポートします。
- AT EXIT ブレークポイントを設定できるのは、現在取り出されているか
ロードされているプログラムに対してのみです。
現時点で未知のコンパイル単位に対して出口のブレークポイント
を設定するには、AT APPEARANCE コマンドを使用します。
- 非アクティブになるコンパイル単位に設定されている EXIT ブレークポイント (現行のエンクレーブ内にないもの) は、そのコンパイル単位がアクティブになるまで中断 されます。ストレージから削除されるコンパイル単位に設定された EXIT ブレークポイントは、コンパイル単位が再ロードされるまで中断されます。
中断されたブレークポイントは、再活動化されるまで起動できません。
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了でこのブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- 取り出されたプログラムまたはロードされたプログラムが解放されると、そのプログラム内のブロックの EXIT ブレークポイントが除去されます。
- AT EXIT コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生している間は使用できません。
- AT EXIT コマンドは、逆アセンブリー・コンパイル単位では使用できません。
- AT EXIT コマンドは、非言語環境プログラム の COBOL コンパイル単位では使用できません。
- アセンブラーの場合のみ: AT EXIT
は、内部ルーチンまたは外部ルーチンからの出口で制御を受け取ります。EXIT は、次の opcode のいずれかに定義します。
- BR
- BALR、BASR、または BASSM (後に有効な命令がない場合)
例
main の出口において、メッセージを表示し、SIGUSR1 条件を TRIGGER します。現行のプログラム言語の設定は C です。
AT EXIT main {
puts("At exit of the program");
TRIGGER SIGUSR1;
GO;
}
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT GLOBAL コマンド
指定した AT 条件が発生するたびに、Debug Tool に制御を渡します。これらのブレークポイントは、それらの非グローバル・ブレークポイントとは無関係
です (AT GLOBAL PATH と同じになる AT PATH を除く)。グローバル・ブレークポイントは常に、それらの特定非グローバル・ブレークポイントより先に
実行されます。
- command
- 有効な Debug Tool コマンド。
どこにブレークポイントを設定するかに関して特定の情報がない場合には、GLOBAL ブレークポイントを使用してください。例えば、ブロック Abcdefg_Unknwn への入り口で停止したい場合に、その名前が思い出せないときは、AT GLOBAL ENTRY を出すと、Debug Tool が、ブロックが入力されるたびに停止します。すべての関数呼び出しで停止したい場合には、AT GLOBAL CALL を
出します。
使用上の注意
- Debug Tool は、逆アセンブルまたは VS COBOL II プログラムに関しては、AT CALL、AT LABEL、および AT PATH コマンドをサポートしません。
- Debug Tool は、非言語環境プログラム の COBOL プログラムに関しては AT CALL コマンドをサポートしません。
- グローバル・ブレークポイントを設定する場合、AT コマンドにアスタリスク (*) を
指定するか、AT GLOBAL コマンドを指定することができます。
- GLOBAL ブレークポイントを定義して、同一の位置またはイベントにある、同一タイプの
単一ブレークポイントと共存させることはできますが、COBOL では、同一の位置またはイベントの
場合は、同一タイプの単一ブレークポイントを複数定義することはできません。最後に定義したブレークポイントにより、それまでのブレークポイントが置換されます。
- AT GLOBAL コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生している間は使用できません。
例
- グローバルな AT ENTRY ブレークポイントを設定するには、次のように指定します。
AT ENTRY *;
または
AT GLOBAL ENTRY;
- 各ステートメントまたは行ごとに、ステートメントまたは行を識別する
メッセージを表示します。現行のプログラム言語の設定は COBOL です。
AT GLOBAL STATEMENT LIST ('At Statement:', %STATEMENT);
- 次のように入力して (COBOL の場合)、
AT EXIT table1 PERFORM
LIST TITLED (age, pay);
GO;
END-PERFORM;
さらに、次のように入力すると、
AT EXIT table1 PERFORM
LIST TITLED (benefits, scale);
GO;
END-PERFORM;
プログラムがブロック table1
の出口点に達したときに、benefits と scale のみがリストされます。
同一の位置に対して 2 つのブレークポイントが定義されているため、2 番目の AT EXIT によって最初の AT EXIT が置き換えられます。ただし、1 番目の EXIT ブレークポイントで以下の GLOBAL ブレークポイントを定義すると、プログラムが table1 からの出口に達したときに、4 つの変数すべて (age、pay、benefits、および scale) がその値とともにリストされます。これは、GLOBAL EXIT ブレークポイントが、table1 に設定された EXIT ブレークポイントと共存できるためです。
AT GLOBAL EXIT PERFORM
LIST TITLED (benefits, scale);
GO;
END-PERFORM;
- GLOBAL DATE ブレークポイントを設定するには、次のように指定します。
AT DATE *;
または
AT GLOBAL DATE;
- グローバル・ブレークポイントを他の Debug Tool コマンドと結合するには、次のように指定します。
AT GLOBAL DATE QUERY LOCATION;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT LABEL コマンド
実行が、指定されたステートメント・ラベルまたはラベルのグループに
達したときに、Debug Tool に制御を渡します。C および PL/I で、1 つのステートメントに関連付けられているラベルが複数ある
場合は、複数のラベルを指定することができ、Debug Tool はそれぞれのラベルで
制御を得ます。COBOL では、AT LABEL によって複数のラベルを指定することができます
が、1 つのステートメントに関連付けられている複数ラベルのグループでは、Debug Tool はその
ステートメントについては 1 回しか制御を取得しません。
- *
- LABEL ごとにブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
例
- 現在修飾されているブロック内のラベル create でブレークポイントを
設定します。
AT LABEL create;
- プログラム・ラベル para OF sect1 で変数名 x および y と
それらの値を表示し、プログラム実行を継続します。現行のプログラム言語の設定は COBOL です。
AT LABEL para OF sect1 PERFORM
LIST TITLED (x, y);
GO;
END-PERFORM;
- ラベル label1 および label2 が同じステートメント
に関連付けられている場合でも、両方のラベルでブレークポイントを設定します。現行のプログラム言語の設定は C です。
AT LABEL label1 LIST 'Stopped at label1'; /* Label1 is first */
AT LABEL label2 LIST 'Stopped at label2'; /* Label2 is second */
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT LINE コマンド
指定した行に至ると Debug Tool に制御を渡します。
AT LINE コマンドは、AT STATEMENT コマンドと同義です。
逆アセンブルされたプログラムのデバッグ中は、AT LINE コマンドを使用できません。その代わりに、AT OFFSET コマンドを使用します。
AT LINE コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT LOAD コマンド
指定されたロード・モジュールがストレージに呼び込まれたときに、Debug Tool に制御を渡します。
例えば、C の fetch()、PL/I の FETCH が正常に完了した時点、または
COBOL の動的 CALL、MVS LOAD サービス、
または EXEC CICS LOAD 中に、Debug Tool に制御が渡されます。
COBOL DLL 内のコンパイル単位またはプログラムを停止するには、AT APPEARANCE を使用します。指定されたロード・モジュールについて活動化されたブレークポイントは、そのロード・モジュールが解放されて再度取り出されるまで、あるいは指定された名前を持つ別のロード・モジュールが取り出されるまでは
再び活動化されることはありません。
LOAD ブレークポイントは、どのコンパイラー・オプションが有効になっているのかに
かかわらず設定することができます。
- *
- ロード・モジュールの LOAD のたびに、ブレークポイントを設定します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- Debug Tool は、言語環境プログラムのロード・サービス、MVS LOAD サービス、または EXEC CICS LOAD の影響を受けるロードで、
制御を受け取ります。
LOAD ブレークポイントは、新しいエンクレーブに入ると、起動されます。動的デバッグ機能
が非アクティブにされるか (SET DYNDEBUG OFF コマンドを入力して)、または
SVC スクリーニングが使用不可にされている場合、MVS LOAD サービスの影響を受ける削除は Debug Tool に通知されません。
SVC スクリーニングを制御する方法について詳しくは、「Debug Tool カスタマイズ・ガイド」を参照してください。
- AT LOAD を使用して、特定の言語ライブラリーのロード・モジュールの
ロードを検出することが可能ですが、言語ライブラリーのロード・モジュールのロードでは、AT GLOBAL LOAD または
AT LOAD * を起動しません。
- AT LOAD は初期ロード・モジュールを指定することができません。これは、Debug Tool が起動されたときにそれが既にロードされているためです。
- ブレークポイントを親エンクレーブで設定すると、アプリケーションが子エンクレーブで実行中でも、ブレークポイント・コマンドによってブレークポイントが起動され、処理されます。
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了でこのブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- 暗黙的または明示的にロードした DLL の AT LOAD は、Debug Tool ではサポートされていません。
- ご使用の C コンパイラーまたは C++ コンパイラーのバージョンによっては、Debug Tool が DLL 内のコンパイル単位を認識するのが、その中の関数が呼び出された後になる場合があります。例えば、DLL が、CU file1 内に関数 fn1 を
含み、CU file2 内に fn2 を含んでいる場合、fn1 を呼び出しても、Debug Tool は file2 を
認識できず、file1 だけを認識します。同様に、fn2 を呼び出しても、Debug Tool は file1 を
認識できません。
- C、C++、および PL/I の場合、LOAD ブレークポイントの起動の時点で、Debug Tool は、ブレークポイントを設定し、静的ストレージ・クラスと外部ストレージ・クラスの変数を検査するための、ロード済みモジュールに関する十分な情報を持っています。
- COBOL、C および C++ DLL に対して LOAD ブレークポイントを起動した時点
では、ロード済みモジュールについて、Debug Tool は、そのモジュール内に含まれる
ブロックにブレークポイントを設定するための十分な情報をもっていません。ただし、これらのブレークポイントは、APPEARANCE ブレークポイントの起動の時点で
設定することができます。
- AT LOAD コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT LOAD コマンド (リモート・デバッグ・モード)
指定されたロード・モジュールがストレージに呼び込まれたときに、Debug Tool に制御を渡します。
例えば、C の fetch()、PL/I の FETCH が正常に完了した時点、または
COBOL の動的 CALL、MVS LOAD サービス、
または EXEC CICS LOAD 中に、Debug Tool に制御が渡されます。
指定されたロード・モジュールについて活動化されたブレークポイントは、そのロード・モジュールが解放されて再度取り出されるまで、あるいは指定された名前を持つ別のロード・モジュールが取り出されるまでは
再び活動化されることはありません。
LOAD ブレークポイントは、どのコンパイラー・オプションが有効になっているのかに
かかわらず設定することができます。
AT OCCURRENCE コマンド
言語または言語環境プログラムでの条件または例外、あるいは
MVS
または CICS
の ABEND の発生で、Debug Tool に制御を渡します。
- condition
- 有効な条件または例外。これには、以下のコードまたは条件
のいずれかがあります。
- 言語環境プログラムのシンボリック・フィードバック・コード。
- 現在のプログラム言語の設定値によって、言語指向のキーワードまたはコード。
- MVS システムまたはユーザーの ABEND コードの Sxxx または Uxxx。
ここで、xxx は、目的の ABEND コードに対応する 3 桁の 16 進数字です。
これらのコードは、言語環境プログラム・ランタイムなしで実行しているときにのみ有効です。
- CICS ABEND コードを表す任意の 4 文字ストリング。
このコードは、言語環境プログラム・ランタイムなしで実行しているときにのみ有効です。
次に、C および C++ の条件定数を示します。大文字を使用し、省略なしの記述が必要です。
|
SIGABND
SIGABRT
SIGFPE
|
SIGILL
SIGINT
SIGIOERR
SIGSEGV
|
SIGTERM
SIGUSR1
SIGUSR2
THROWOBJ
|
C++ ユーザーが AT CONDITION THROWOBJ を指定すると、Debug Tool は、C++ コードの throw の時点で、ユーザーに制御を移動します。
PL/I 条件定数を使用できます。ただし、FILE 条件定数および CONDITION 条件定数は、Enterprise PL/I プログラムをデバッグしているときには使用できません。
COBOL の条件定数はありません。その代わりに、言語環境プログラムのシンボリック・フィードバック・コード (例えば、CEE347) を使用しなければなりません。
TRAP(ON) ランタイム・オプションを使用して、言語環境プログラム条件、または MVS か CICS
の ABEND で停止する必要があります。
- command
- 有効な Debug Tool コマンド。
プログラムの条件および条件処理は、言語によって異なります。各言語に適応するように OCCURRENCE ブレークポイントが使用するメソッドは、以下に説明するとおりです。
C および C++ の場合:
セッション中に C および C++ または、言語環境プログラム条件が発生すると、以下の一連のイベントが発生します。
- Debug Tool は、C または C++ シグナル・ハンドラーより先に起動されます。
- その条件について OCCURRENCE ブレークポイントを設定してある場合に
は、Debug Tool は、そのブレークポイントを処理し、指定されているコマンドを実行します。その条件について OCCURRENCE ブレークポイントを設定していない場合で、かつ
- 現行のテスト・レベル設定値が ALL である場合は、Debug Tool は、コマンドの入力を求めるプロンプトを出すか、あるいはコマンド・ファイルからコマンドを読み取ります。
- 現行のテスト・レベル設定値が ERROR であり、その条件に
エラー重大度レベル (すなわち、SIGUSR1、SIGUSR2、SIGINT、または SIGTERM 以外の条件) がある場合は、Debug Tool は、プロンプトを出すか、コマンド・ファイルからの読み取りによって
コマンドを入手します。
- 現行のテスト・レベル設定値が NONE である場合は、Debug Tool は
その条件を無視し、プログラムに制御を戻します。
同一内容の C および C++ シグナルおよび言語環境プログラム条件に関して OCCURRENCE ブレークポイントを
設定することができます。例えば、同一のデバッグ・セッション中
に AT OCCURRENCE CEE345 と AT OCCURRENCE SIGSEGV を設定
することができます。これらはいずれもアドレッシング例外を表すものであって、両方のブレークポイントを
設定しても、エラーは発生しません。ただし、ある条件に関して C、C++ と言語環境プログラムの両方の指定子を
使用して OCCURRENCE ブレークポイントを設定した場合には、起動されるブレークポイントは言語環境プログラムのブレークポイントのみです。C 条件に関連付けられたコマンド・リストは、いずれも実行されません。
OCCURRENCE ブレークポイントを使用して、エラーに対するプログラムの応答を
制御することができます。
使用上の注意
- アプリケーション・プログラムがその条件に対して例外ハンドラーも作成して
ある場合、Debug Tool が制御を手放すとその例外ハンドラーに制御が移ります。ただし、GO BYPASS あるいは特定のステートメントへの GOTO を
使用して戻る場合を除きます。
- COBOL IGZ 条件に対する OCCURRENCE ブレークポイントの設定は、COBOL 実行時モジュール
が初期設定されたあとでのみ可能です。
- C、C++ および PL/I の場合、ある種の言語環境プログラム条件は、C および C++ SIGxxx の
値および PL/I の条件定数にマップします。同じ条件であれば、2 つの AT OCCURRENCE ブレークポイントに入る
ことができます。例えば、1 つのブレークポイントには言語環境プログラム条件名で入り、他方には C および C++ の SIGxxx 条件定数で入ることができます。この場合、言語環境プログラム条件名の AT OCCURRENCE ブレークポイント
が起動され、C または C++ 条件定数の AT OCCURRENCE ブレークポイントは、起動されません。ただし、言語環境プログラム条件名の AT OCCURRENCE ブレークポイントが定義されていない
場合、該当のマップ済み C、C++、または PL/I 条件定数は起動されます。
- このブレークポイントを親エンクレーブで設定した場合、アプリケーションが子エンクレーブで実行中でも、ブレークポイント・コマンドによってブレークポイントが起動され、処理されます。
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了でこのブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- COBOL の場合、Debug Tool は言語環境プログラム条件を検出します。セッション中に言語環境プログラム条件が発生すると、以下の一連のイベントが発生します。
- 条件ハンドラーよりも先に Debug Tool が起動されます。
- その条件について OCCURRENCE ブレークポイントを設定してある場合に
は、Debug Tool は、そのブレークポイントを処理し、指定されているコマンドを実行します。その条件について OCCURRENCE ブレークポイントが設定されていない場合で、かつ
- 現行のテスト・レベル設定値が ALL である場合は、Debug Tool は、コマンドの入力を求めるプロンプトを出すか、あるいはコマンド・ファイルからコマンドを読み取ります。
- 現行のテスト・レベル設定値が ERROR であって、その条件の
エラー重大度レベルが 2 以上である場合は、Debug Tool はプロンプトを出すか
コマンド・ファイルから読み取ることによってコマンドを入手します。
- 現行のテスト・レベル設定値が NONE である場合は、Debug Tool は
その条件を無視し、プログラムに制御を戻します。
OCCURRENCE ブレークポイントを使用して、エラーに対するプログラムの応答を
制御することができます。
- PL/I の場合、Debug Tool は言語環境プログラム条件および PL/I 条件を検出します。条件が発生すると、Debug Tool は、条件ハンドラーより先に起動されます。指定された条件に対して、ON コマンドを出すか、OCCURRENCE ブレークポイントを
設定すると、Debug Tool は関連のコマンドを実行します。
- AT OCCURRENCE または ON が設定されていない場合で、かつ
- 現行のテスト・レベル設定値が ALL である場合は、Debug Tool は、コマンドの入力を求めるプロンプトを出すか、あるいはコマンド・ファイルからコマンドを読み取ります。
- 現行のテスト・レベル設定値が ERROR であって、その条件のエラー重大度
レベルが 2 以上である場合は、Debug Tool はプロンプトを出すかコマンド・ファイルから読み取る
ことによってコマンドを入手します。
- 現行のテスト・レベル設定値が NONE である場合は、Debug Tool は
その条件を無視し、プログラムに制御を戻します。
- Debug Tool が制御をプログラムに戻すと、関係のある PL/I ON ユニットが
実行されます。
- SPIE または ESPIE を使用するプログラムを、SPIE または ESPIE がアクティブであるときにデバッグする場合、プログラムは、CALL コマンドの使用が原因で発生するプログラム・チェックを除く、すべてのプログラム・チェックに対して TRAP(OFF) が指定されたように動作します。
- ESTAE または ESTAEX を使用するプログラムを、ESTAE または ESTAEX がアクティブであるときにデバッグする場合)、プログラムは、プログラム・チェックを除く、すべての異常終了に対して TRAP(OFF) が指定されたように動作します。
Debug Tool では条件は処理されません。
ESTAE または ESTAEX 出口は、プログラム・チェックを除く、異常終了を処理します。
- AT OCCURRENCE コマンドは、記録された
ステートメントを PLAYBACK コマンドを使用して再生している間は使用できません。
例
- データ例外が発生した場合に、現行の位置を照会します。現行のプログラム言語の設定は、C または COBOL のいずれかです。
AT OCCURRENCE CEE347 QUERY LOCATION;
- 言語環境プログラム・ランタイムなしに MVS で実行した場合は (すなわち、EQANMDBG の下で)、システム 0C1 ABEND が発生すると、以下のコマンドで現在の CU に関する情報をリストします。
AT OCCURRENCE S0C1 DESCRIBE CUS;
- SIGSEGV 条件が発生した場合に、エラー・フラグを設定して、ユーザー終了ルーチンを呼び出します。現行のプログラム言語の設定は C です。
AT OCCURRENCE SIGSEGV {
error = 1;
terminate (error);
}
- SIGFPE が CEE347 にマップし、以下のブレークポイントが定義されているとします。現行のプログラム言語の設定は C です。
AT OCCURRENCE SIGFPE LIST "SIGFPE condition";
AT OCCURRENCE CEE347 LIST "CEE347 condition";
言語環境プログラム条件の CEE347 が発生した場合、CEE347 ブレークポイントが起動されます。
ただし、ブレークポイントが CEE347 について定義されなかった場合に CEE347 条件が発生すると、SIGFPE ブレークポイントが起動されます (CEE347 にマップされるため)。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT OFFSET コマンド (逆アセンブル)
逆アセンブル表示の指定したオフセットに至ると、Debug Tool に制御を渡します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
AT OFFSET コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- ブレークポイントを、現行ブロック内のオフセット '2A' に設定します。
AT OFFSET X'2A';
- ブレークポイントを、現行ブロック内のオフセット '2A' および '30' に設定します。
AT OFFSET (X'2A',X'30');
- ブレークポイントを、ブロック MYPROG 内のオフセット '3A' に設定します。
AT OFFSET MYPROG:>X'3A';
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT PATH コマンド
制御の流れが変化したときに (パス点において)、Debug Tool に制御を渡します。
AT PATH は AT GLOBAL PATH と同じです。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了でこのブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- C で、PATH ブレークポイントを設定できるようにするには、プログラムを以下のいずれかの方法でコンパイルする必要があります。
- TEST コンパイラー・オプションの PATH または ALL サブオプションを指定します。
- DEBUG コンパイラー・オプションの PATH または ALL サブオプションを指定します。
- C++ で、PATH ブレークポイントを設定できるようにするには、プログラムを以下のいずれかの方法でコンパイルする必要があります。
- TEST コンパイラー・オプションを指定します。
- DEBUG コンパイラー・オプションの PATH または ALL サブオプションを指定します。
- 以下のコンパイラーでコンパイルする COBOL プログラムで、PATH ブレークポイントを設定できるようにするには、TEST コンパイラー・オプションの NONE、PATH、または ALL サブオプションを指定してプログラムをコンパイルします。
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390 & VM バージョン 2
- PL/I で PATH ブレークポイントを設定できるようにするには、TEST コンパイラー・オプションの PATH また
は ALL サブオプションを使用してプログラムをコンパイルする必要があります。
- AT PATH コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
- Debug Tool は、逆アセンブルされたプログラムまたは VS COBOL II プログラムのデバッグ時は AT PATH コマンドをサポートしません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT 接頭部コマンド (フルスクリーン・モード)
ユーザーがソース・ウィンドウの接頭部域でこのコマンドを出すと、ステートメント・ブレークポイントを設定します。1 つ以上のブレークポイントが行に設定されると、その行の接頭部域は強調表示されます。
- integer
- 行内の相対ステートメント (C、C++、および PL/I の場合) または
相対 verb (COBOL の場合) を選択します。デフォルト値は 1 です。最適化 COBOL プログラムでは、デフォルト値は、最適化の影響によって廃棄されなかった行の最初の実行可能ステートメントです。
使用上の注意
AT 接頭部コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
行の 3 番目のステートメントまたは verb にブレークポイントを設定します (そのス
テートメントがある行の接頭部域に次のように入力されます)。
AT 3
キーワードと整数の間には、区切り文字としてのスペースは必要はありません。したがって、AT 3 は AT3 と同じです。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT STATEMENT コマンド
所定の範囲内の指定のステートメントまたは行に至るたびに、Debug Tool に
制御を渡します。
- *
- STATEMENT または LINE に至るたびに、ブレークポイントを
設定します。
- command
- 有効な Debug Tool コマンド。リモート・デバッグ・モードを使用する場合、指定できるコマンドはリモート・デバッグ・モードでサポートされるコマンドだけです。
- condition
- 有効な Debug Tool の条件式。
使用上の注意
- 逆アセンブルされたプログラムのデバッグ時には AT STATEMENT コマンドを使用できません (AT STATEMENT * 形式の場合を除く)。
その代わりに、AT OFFSET コマンドを使用します。
- 非アクティブのコンパイル単位 (現行のエンクレーブ内にないもの) に設定
されている STATEMENT ブレークポイントは、そのコンパイル単位がアクティブに
なるまで 中断 されます。ストレージから削除されるコンパイル単位に対して設定された STATEMENT ブレークポイントは、コンパイル単位が再ロードされるまで中断されます。
中断されたブレークポイントは、再活動化されるまで起動できません。
- Debug Tool での CICS アプリケーションでは、アプリケーションの最後のプロセスの終了でこのブレークポイントは消去されます。Debug Tool での CICS 以外の
アプリケーションでは、プロセスの終了で消去されます。
- 各行の最初の相対ステートメントは、3 つのうちのいずれの方法で指定すること
もできます。例えば、行 3 にある最初の相対ステートメントに STATEMENT ブレークポイントを
設定したい場合、AT 3、AT 3.0、あるいは AT 3.1 の
いずれかを入力することもできます。しかし、Debug Tool は、そのときに使用しているプログラム言語によって、異なったログを記録します。
- C および C++ の場合
行の最初の相対ステートメントは「0」で指定されます。上記のすべてのブレークポイントは AT 3.0 とログに記録されます。
- COBOL あるいは PL/I の場合
行の最初の相対ステートメントは「1」で指定されます。上記のすべてのブレークポイントは AT 3.1 とログに記録されます。最適化 COBOL プログラムでは、最初の相対ステートメントが最初の実行可能ステートメントです。最適化プログラムが最初のステートメントを廃棄した場合、これは最初のステートメントでないことがあります。
- STORAGE ランタイム・オプションが有効な場合、AT STATEMENT コマンドを使用して、最初の BALR 14,15 命令と次の LR 13,x 命令の間のアセンブラー・コンパイル単位のプロローグにブレークポイントを設定することはできません。
- AT STATEMENT コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
- WHEN 条件の指定によって、AT STATEMENT ブレークポイントが発生する環境を制限できます。
WHEN 条件が指定されている場合は、指定されたステートメントが現行のステートメントと一致し、かつ WHEN 条件が true のときに、Debug Tool が AT STATEMENT ブレークポイントで停止します。
- 条件で使用できる条件演算子は次のとおりです。
- =
- 2 つのオペランドの同等性を比較する。
- ¬=
- 2 つのオペランドの不等性を比較する。
- <
- 左方のオペランドが右方のオペランドより小さいか否かを判断する。
- >
- 左方のオペランドが右方のオペランドより大きいか否かを判断する。
- <=
- 左方のオペランドが右方のオペランドより小さいまたは等しいか否かを判断する。
- >=
- 左方のオペランドが右方のオペランドより大きいまたは等しいか否かを判断する。
- &
- 論理「AND」演算。
- |
- 論理「OR」演算。
- AT STATEMENT コマンドを WHEN 条件とともに使用した場合、Debug Tool はステートメントに到達するたびに条件を評価します。
条件が true に評価されると、Debug Tool は、ブレークポイントに関連付けられているコマンドの停止と実行を行います。
- Debug Tool は、ステートメントを実行する前 に、WHEN 条件内の参照を評価します。
- Debug Tool が条件を評価するときにその条件が無効であった場合、Debug Tool は以下のいずれかの処置を行います。
- SET WARNING が ON に設定されている場合、Debug Tool は停止して、条件を評価できなかったことを示すメッセージを表示します。Debug Tool で行う処置を示すために、コマンドを入力する必要があります。
- SET WARNING が OFF に設定されている場合、Debug Tool は停止せず、条件を評価できなかったことを示すメッセージも表示しません。Debug Tool はプログラムの実行を継続します。
例
- ステートメントまたは行番号 23 でブレークポイントを設定します。現行のプログラム言語の設定は COBOL です。
AT 23 LIST 'About to close the file';
- コンパイル単位 mycu 内のステートメント 5 から 9 でブレークポイントを
設定します。現行のプログラム言語の設定は C です。
AT STATEMENT "mycu":>5 - 9;
- 行 19 から 23、およびステートメント 27 と 31 でブレークポイントを設定します。
AT LINE (19 - 23, 27, 31);
または
AT LINE (27, 31, 19 - 23);
- ステートメントまたは行 100 に、myvar の値が 100 に等しい場合にのみ発生するブレークポイントを設定するには、次のコマンドを入力します。
AT 100 WHEN myvar=100;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT STATEMENT コマンド (リモート・デバッグ・モード)
指定したステートメントまたは行に至ると Debug Tool に制御を渡します。
使用上の注意
AT STATEMENT コマンドを入力すると、プログラムが停止した位置を基準としてブレークポイントが設定されますが、そのプログラムはソース・ビューで表示されているプログラムとは異なる場合があります。例えば、使用するプログラムがプログラム MAIN1 によって呼び出されたプログラム SUB1 で停止し、ソース・ビューにプログラム SUB1 のソースが表示されているとします。次に、デバッグ・ビューで MAIN1 をクリックして、ソース・ビューに MAIN1 のソースを表示します。コマンド AT STATEMENT 13 を入力すると、MAIN1 のステートメント 13 ではなく、SUB1 のステートメント 13 にブレークポイントが設定されます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
AT TERMINATION コマンド
アプリケーション・プログラムが終了したときに Debug Tool に制御を渡します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
BEGIN コマンド
BEGIN および END は、1 つ以上のコマンドを 1 個の長形式コマンドにします。BEGIN および END キーワードは、省略することはできません。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- BEGIN コマンドは、AT または PROCEDURE コマンドで使用されたときに最も役立ちます。
- Enterprise PL/I の場合、BEGIN コマンドは、IF または ON コマンドで使用されたときに最も役立ちます。
- BEGIN コマンドは、新しいブロックあるいは名前の有効範囲を
暗黙のうちに指定するものではありません。PL/I の単純な DO と同じ働きをします。
- BEGIN コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
ブロック・コマンド (C および C++)
ブロック・コマンドを使用すると、いくつかの Debug Tool コマンド
を 1 つのコマンドにグループ化することができます。複数の Debug Tool コマンドを一組の中括弧 ({}) で囲むと、中括弧の中にあるものすべてが単一
のコマンドとして扱われます。コマンドを入力できる場所であれば、どこにでもブロックを置くことができます。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- 宣言は、ネストされたブロック内では許可されません。
- C の ブロック・コマンドは、セミコロンでは終わりません。右中括弧の後のセミコロンは、NULL コマンドとして扱われます。
- ブロック・コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
ロード・モジュール a が取り出された場合に、入り口ブレークポイントを確立します。
AT LOAD a {
AT ENTRY a;
GO;
}
break コマンド (C および C++)
break コマンドを使用すると、論理的な終了地点以外の任意の
位置からループ (すなわち do、for、および while) または switch コマンドを停止および終了することができます。break コマンドは、ループ・コマンドの本文
または switch コマンドの本文に入れることができます。break キーワードは小文字でなければならず、省略することは
できません。
ループ・ステートメントでは、break コマンドはループを終了し、制御をループの外の次のコマンドに移します。ネストされたステートメントでは、break コマンドは取り込まれた
最小の do、for、switch、または while コマンド部分のみを終了します。
switch の本文では、break コマンドは、switch 本文の実行を終了し、switch 本文外の次のコマンドに制御を移します。
使用上の注意
- break コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- 次の例では、for コマンドの動作部にある break コマンドを示します。配列 string の i 番目のエレメントが '¥0' と等しい場合、break コマンドによって for コマンドは終了します。
for (i = 0; i < 5; i++) {
if (string[i] == '¥0')
break;
length++;
}
- 次の switch コマンドには、いくつかの case 文節
と 1 つの default 文節が含まれます。文節ごとに、関数呼び出しおよび break コマンドが含まれています。break コマンドは、switch の本文内で、後続のコマンドに制御権が移らないようにします。
char key;
key = '-';
AT LINE 15 switch (key)
{
case '+':
add();
break;
case '-':
subtract();
break;
default:
printf("Invalid key\n");
break;
}
CALL コマンド
CALL コマンドは、プロシージャー、入り口名、またはプログラム名のいずれかを呼び出すか、
またはユーティリティー機能が実行されるよう要求します。
C および C++ で CALL に相当するものは、関数参照です。PL/I のサブルーチンまたは関数を Debug Tool セッション中に、動的に呼び出すことはできません。CALL キーワードは省略できません。
C++ の場合、ユーザー関数が次の構文で宣言されている限り、その関数への呼び出しを行うことができます。
extern "C"
COBOL では、Debug Tool の初期設定中には CALL コマンドを
出すことはできません。
次の表は、CALL コマンドの形式を要約しています。
CALL %CEBR コマンド
CICS 一時ストレージ・ブラウザー・プログラムを開始します。
使用上の注意
- Debug Tool は、CICS ブラウザー・プログラムに対して EXEC CICS LINK を実行します。
CEBR の処理が完了すると、EXEC CICS の戻りによって、制御が Debug Tool に戻されます。
- このコマンドは、フルスクリーン・モードの単一端末モードで
CICS
プログラムをデバッグする場合にのみ使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連資料
- CICS Supplied Transactions
- CICS Transaction Server for z/OS CICS アプリケーション・プログラミング・ガイド バージョン 2 リリース 2
CALL %CECI コマンド
CICS コマンド・レベル・インタープリター・プログラムを開始します。
使用上の注意
- Debug Tool は、CICS コマンド・レベル・インタープリター・プログラムに対して EXEC CICS LINK を実行します。
CECI の処理が完了すると、EXEC CICS の戻りによって、制御が Debug Tool に戻されます。
- このコマンドは、フルスクリーン・モードの単一端末モードで
CICS
プログラムをデバッグする場合にのみ使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連資料
- CICS Supplied Transactions
- CICS Transaction Server for z/OS CICS アプリケーション・プログラミング・ガイド バージョン 2 リリース 2
CALL %DUMP コマンド
ダンプ・サービスを呼び出して、定様式ダンプを取得します。

- title
- ダンプの各ページの先頭に印刷されている識別名称を指定します。固定長の文字ストリングでなければなりません。このストリングは、引用符 (") またはアポストロフィ (') で文字ストリング定数を囲む、現行のプログラム言語の構文規則に従う必要があります。
ストリングの長さは、80 バイトを超えてはなりません。
- options_string
- ダンプ情報のタイプ、形式、および宛先を指定する固定長の文字ストリング。このストリングは、引用符 (") またはアポストロフィ (') で文字ストリング定数を囲む、現行のプログラム言語の構文規則に従う必要があります。 ストリングの長さは、247 バイトを超えてはなりません。
オプションは、ブランクまたはコンマによって区切られた
キーワードの 1 つのストリングとして宣言されます。オプション・キーワードの後にサブオプションをもつオプションは、括弧に入れられます。オプションは任意の順序で指定することができますが、先行オプションとの間に
矛盾がある場合には、後のオプション宣言が優先されます。
options_string には、次のものを入れることができます。
- THREAD(ALL|CURRENT)
- 現行のスレッド、または現行のエンクレーブに関連付けられているすべての
スレッドをダンプします。デフォルトは、現行のスレッドのみをダンプします。1 つのスレッドのみ
がサポートされます。単一スレッドからなるエンクレーブでは、THREAD(ALL)
と THREAD(CURRENT) は同等です。
THREAD は、THR と省略することができます。
CURRENT は、CUR と省略することができます。
CICS: 言語環境プログラムなしに CICS の下で実行するとき (ここで、Debug Tool は EXEC CICS DUMP TRANSACTION を出します)、このオプションはサポートされません。
- TRACEBACK
- 呼び出しチェーンにおいてアクティブなプロシージャー、ブロック、条件ハンドラー、およびライブラリー・モジュールのトレースバック (トレース) を要求します。トレースバックでは、呼び出しまたは例外のいずれかからの制御の移行が示されます。トレースバックは、現行スレッドの主プログラムまで逆方向に行われます。
TRACEBACK は TRACE と省略することができます。
- NOTRACEBACK
- トレースバックを抑止します。
NOTRACEBACK は NOTRACE と省略されます。
- FILES
- オープンされているすべてのファイルの完全な属性セット、およびファイルによって使用されるバッファーの内容を要求します。
FILES は FILE と省略することができます。
- NOFILES
- オープンされているファイルのファイル属性を抑止します。
NOFILES は NOFILE と省略することができます。
- VARIABLES
- すべての変数、引数、およびレジスターのシンボリック・ダンプを要求します。
変数には、配列および構造が含まれます。レジスター値は、呼び出し時にスタック・フレームに保存された値です。その情報のサブセットを印刷することはできません。
変数および引数は、記号テーブルが使用可能な場合にのみ印刷されます。記号テーブルは、プログラムがコンパイル・オプションを使用してコンパイル
された場合に生成されます。各言語ごとのコンパイル・オプションを次に示します。
| 言語 |
コンパイラー・オプション |
| C |
TEST(SYM) |
| C++ |
TEST |
| COBOL |
TEST または TEST(h,SYM) |
| PL/I |
TEST(,SYM) |
変数、引数、およびレジスターのダンプは Debug Tool によって開始されます。ダンプするチェーン内のルーチンの数は、STACKFRAME オプションによって指定します。
VARIABLES は VAR と省略することができます。
- NOVARIABLES
- 変数、引数、およびレジスターのダンプを抑止します。
NOVARIABLES は NOVAR と省略することができます。
- BLOCKS
- 制御ブロックの独立 16 進ダンプを生成します。
グローバル制御ブロックおよび呼び出しチェーンでルーチンに関連付けられた
制御ブロックが印刷されます。制御ブロックが Debug Tool 用に印刷されます。ダンプは、STACKFRAME オプションによって指定されたルーチン数の
呼び出しチェーンまで行われます。
FILES が指定されている場合、これは、ファイル分析で使用
される制御ブロックの独立 16 進ダンプを生成するために使用されます。
BLOCKS は BLOCK と省略することができます。
CICS: 言語環境プログラムなしに CICS の下で実行するとき (ここで、Debug Tool は EXEC CICS DUMP TRANSACTION を出します)、このオプションはサポートされません。
- NOBLOCKS
- 制御ブロックの 16 進ダンプを抑止します。
NOBLOCKS は NOBLOCK と省略することができます。
- STORAGE
- プログラムによって使用されるストレージをダンプします。
ストレージは、16 進数の文字形式で表示されます。グローバル・ストレージおよび呼び出しチェーンで各ルーチンに関連付けられたストレージが
印刷されます。ストレージが Debug Tool 用にダンプされます。ダンプは、STACKFRAME オプションによって指定された
ルーチン数の呼び出しチェーンまで行われます。すべてのファイル・バッファーのストレージも、FILES オプションが
指定されるとダンプされます。動的デバッグ機能をアクティブにした場合、元のアプリケーション命令によって
は、'0A91'x 命令によって置き換えられたため、表示されないものもあります。
STORAGE は STOR と省略することができます。
- NOSTORAGE
- ストレージ・ダンプを抑止します。
NOSTORAGE は、NOSTOR と省略することができます。
- STACKFRAME(n|ALL)
- 呼び出しチェーンからダンプされるスタック・フレーム数を指定します。
STACKFRAME(ALL) が指定された場合、すべての
スタック・フレームがダンプされます。STACKFRAME(0) が指定された場合は、スタック・フレーム・ストレージは
ダンプされません。
それぞれのスタック・フレームについてダンプされた特定情報は、指定され
た VARIABLE、BLOCK、および STORAGE オプション
宣言によって異なります。ダンプされた最初のスタック・フレームが Debug Tool と関連付けられたスタック・フレームです。このスタック・フレームの後ろには、その呼び出し元が続き、呼び出しチェーンを逆方向に進めます。
STACKFRAME は、SF と省略することができます。
- PAGESIZE(n)
- ダンプのページごとの行数を指定します。
この値は、9 より大きくなければなりません。ゼロの値 (0) は、ダンプ内で改ページがあってはならない
ことを示します。
PAGESIZE は、PAGE と省略することができます。
- FNAME(s)
- ダンプ・レポートが作成されるファイルの DD 名を指定します。
デフォルト DD 名 CEEDUMP は、このオプションが指定されない場合に
使用されます。
- CONDITION
- 呼び出しチェーンでアクティブなそれぞれの条件について、次の
情報が条件情報ブロック (CIB) からダンプされるよう指定します。
- CIB のアドレス
- 現行の条件トークンに関連付けられたメッセージ
- 元の条件トークンに関連付けられたメッセージ (現行の条件トークンと異なる場合)
- エラーの位置
- 条件マネージャーが起動された時点でのマシン状態
- ABEND コードおよび REASON コード (ABEND が原因で条件が発生した場合)
ダンプされる特定の情報は、条件マネージャーが起動される原因と
なった条件によって異なります。マシン状態が含まれるのは、ハードウェア条件または ABEND が発生した場合にのみです。ABEND および REASON コードは、ABEND が発生した場合にのみ含まれます。
CONDITION は、COND と省略することができます。
- NOCONDITION
- 呼び出しチェーンでアクティブな条件についてのダンプ条件情報を抑止します。
NOCONDITION は NOCOND と省略することができます。
- ENTRY
- ダンプ・サービスを呼び出した Debug Tool ルーチンの記述、およびその呼び出し点での
レジスターの内容をダンプに組み込みます。
現在サポートされるプログラム言語では、ENTRY は無効であり、無視されます。
CICS: 言語環境プログラムなしに CICS の下で実行するとき (ここで、Debug Tool は EXEC CICS DUMP TRANSACTION を出します)、このオプションはサポートされません。
- NOENTRY
- ダンプ・サービスを呼び出した Debug Tool ルーチンの記述、およびその呼び出し点での
レジスターの内容を抑止します。
CICS: 言語環境プログラムなしに CICS の下で実行するとき (ここで、Debug Tool は EXEC CICS DUMP TRANSACTION を出します)、このオプションはサポートされません。
この項で説明されたオプションのデフォルトは、次のとおりです。
- CONDITION
- FILES
- FNAME(CEEDUMP)
- NOBLOCKS
- NOENTRY
- NOSTORAGE
- PAGESIZE(60)
- STACKFRAME(ALL)
- THREAD(CURRENT)
- TRACEBACK
- VARIABLES
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連資料
- PLAYBACK コマンド
- z/OS Language Environment プログラミング・ガイド
- z/OS Language Environment デバッグ・ガイド
CALL %FA コマンド
IBM Fault Analyzer を起動して、現行のマシン状態の定様式ダンプを提供するように指示します。
使用上の注意
PLAYBACK コマンドを使用して記録されたステートメントを再生している場合、CALL %FA は、PLAYBACK START を入力するとき、マシン状態の定様式ダンプを提供します。
CALL %FM コマンド
IBM File
Manager for z/OS を始動します。
- userID
- MVS ユーザーの ID。userID を指定しなかった場合は、File Manager が次のいずれかのオプションを実行します。
- ユーザーが CESN を使用してサインオンし、かつ File Manager が *DEFAULT=SIGNON または *PASSWORD=REMEMBER でインストールされている場合は、サインオンに使用したユーザー ID が userID に割り当てられます。
- ユーザーがサインオンしていない場合は、ログオン・パネルが表示される前にユーザー ID を要求するプロンプトが File Manager から出されます。
- BACKGROUND
- すべての非端末処理をバックグラウンド・タスクに転送するように指定します。
使用上の注意
- このコマンドは、CICS プログラムをデバッグする場合にのみ使用できます。
- IBM File Manager for z/OS V9R1 を CICS 領域にインストールしておく必要があります。
CALL %HOGAN コマンド
Computer Sciences Corporation の SMART (System Memory Access Retrieval Tool) とも呼ばれる KORE-HOGAN アプリケーションを開始します。
使用上の注意
- このコマンドは、フルスクリーン・モードの単一端末モードで
CICS
プログラムをデバッグする場合にのみ使用できます。
- KORE-HOGAN アプリケーションを持っていない場合、このコマンドは使用しないでください。
このコマンドを使用した場合は、「Program not loadable
(プログラムをロードできません)」というエラーが発生し、AEIO 例外を引き起こします。
CALL %VER コマンド
システムにインストールした Debug Tool のメンテナンス・レベルを記述するログに行を追加します。
使用上の注意
このコマンドは、リモート・デバッグ・モードで使用できます。
例
Debug Tool for z/OS バージョン 9 リリース 1 (APAR PKnnnnn 用の PTF を適用) がシステムにインストールされているとします。
CALL %VER コマンドを入力して「Log」ウィンドウに次の情報を表示します。
IBM Debug Tool Version 9 Release 1 Mod 0
2008/10/28 06:43:00 AM Level: V9R1 PKnnnnn
5655-U27: Copyright IBM Corp. 1992, 2008
表示されるタイム・スタンプは、製品のビルドの日時です。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
CALL entry_name コマンド (COBOL)
アプリケーション・プログラムで入り口名を呼び出します。入り口名は、有効な外部入り口点名 (すなわち、他のコンパイル単位
から呼び出し可能) でなければなりません。
- identifier
- 有効な Debug Tool COBOL 識別名。
- literal
- 有効な COBOL リテラル。
使用上の注意
- Debug Tool プロシージャー名と同じ COBOL 入り口点名をもつ場合、CALL コマンドを使用する場合は、プロシージャー名が優先されます。Debug Tool プロシージャー名より入り口名を優先させたい場合は、CALL コマンドを使用する際に入り口名を修飾しなければなりません。
- CALL entry_name コマンドを使用すると、プログラムの流れを動的に変更することができます。呼び出されたモジュールにパラメーターを渡すこともできます。
- CALL は、COBOL 言語の呼び出しと同じ規則に従います。
- COBOL ON OVERFLOW および ON EXCEPTION の句は
サポートされないため、END-CALL もサポートされません。
- 別々にコンパイルしたプログラムに対する呼び出しのみがサポートされます。ネストされたプログラムは、この Debug Tool コマンド
では呼び出しできません (もちろん、コンパイルで組み入れた CALL へ
の GOTO または STEP による呼び出しは可能です)。
- すべての呼び出しは、動的に行われます。すなわち、呼び出されたプログラム (literal または identifier として指定された) は、呼び出されたときにロードされます。
- COBOL キーワードの ADDRESS、BY、CONTENT、LENGTH、OF、REFERENCE、USING の説明については、「Enterprise COBOL for z/OS 言語解説書」を参照してください。
- entry_name でメソッドへの参照はできません。
- ウィンドウ化日付フィールドを入り口名を含む ID として指定することはできません。
- CALL entry_name コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
入り口名 sub1 を呼び出して、変数 a、b、および c を渡します。
CALL "sub1" USING a b c;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
CALL プロシージャー・コマンド
PROCEDURE コマンドによって定義されているプロシージャーを呼び出します。
- procedure_name
- PROCEDURE コマンドと、対応する END コマンドで
区切られた、一連の Debug Tool コマンドの名前。
使用上の注意
- Debug Tool のプロシージャー名は常に大文字であるため、大/小文字混合の記号を
使用できるプログラム言語でのプログラムであっても、プロシージャー名は大文字に変換します。
- CALL キーワードは、サブルーチン呼び出し
に CALL を使用しないプログラム言語の場合でも必要です。
- CALL コマンドの使用は、現在実行中のエンクレーブにある
プロシージャーの呼び出しに限定されます。
例
proc1 と命名されたプロシージャーを作成し、呼び出します。
proc1: PROCEDURE;
LIST (r, c);
END;
AT 54 CALL proc1;
CHKSTGV コマンド
ユーザー・ストレージ・エレメントの CICS ストレージ・チェック・ゾーンがオーバーレイされているかどうか確認します。
使用上の注意
- このコマンドは CICS アプリケーションにのみ適用されます。
- このコマンドは、リモート・デバッグ・モードで使用できます。
- このコマンドを使用して、「CICS Problem Determination Guide」のセクション『記憶保護違反の処理 (Dealing with storage violations)』に説明されている事例を置き換えないでください。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
CLEAR コマンド
CLEAR コマンドは、以前に入力された Debug Tool コマンドの処置を除去します。
ブレークポイントのなかには、無意味となったことが Debug Tool によって判別されると、自動的に除去されるものがあります。例えば、取り出されたコンパイル単位またはロードされたコンパイル単位の中に
ブレークポイントを設定した場合、コンパイル単位が解放されるとブレークポイントは廃棄されます。

- AT
- 以前に入力された AT コマンドで設定されたブレークポイント (GLOBAL ブレークポイントを含む) を
すべて除去します (ただし、AT TERMINATION ブレークポイントを除く)。
- AT_command
- 少なくとも 1 つのオペランドをもつ有効な AT コマンド。AT コマンドは、every_clause および command が
省略されていることを除き、完全に入力する必要があります。
- generic_AT_command
- オペランドをもたない有効な AT コマンド。次のいずれかを記入してください。ALLOCATE、APPEARANCE、CALL、CHANGE、CURSOR、DATE、DELETE、ENTRY、EXIT、LABEL、LOAD、OFFSET、OCCURRENCE、PATH、STATEMENT
(STATEMENTS の代わりに LINE キーワードも使用可能)、あるいは TERMINATION。
- DECLARE
- 以前に定義された変数およびタグを除去します。DECLARE の後に identifier がない場合、すべてのセッション変数およびタグが消去されます。
DECLARE は VARIABLES と同等です。
- identifier
- Debug Tool セッション中に宣言されたセッション変数またはタグの名前。このオペランドは、現行のプログラム言語の規則に従わなければなりません。
- EQUATE
- 以前に定義されたシンボリック参照を除去します。EQUATE の後に identifier がない場合、既存
の SET EQUATE 同義語はすべて消去されます。
- identifier
- Debug Tool セッション中に SET EQUATE を使用して宣言された
以前定義済み参照同義語の名前。このオペランドは、現行のプログラム言語の規則に従わなければなりません。
- LOAD
- ロード・モジュールを除去します。
このコマンドには、次のサブパラメーターがあります。
- module_name
- LOAD コマンドを使用して Debug Tool によってロードされた 1 つ以上のロード・モジュールの名前。
- LOG
- ログ・ファイルを削除し、スクロールのために保管されているデータを
消去します。行モードでは、CLEAR LOG はログ・ファイルのみ消去します。
ログ・ファイルが SYSOUT タイプのファイルに出力指示されている場合、CLEAR LOG はそのファイル内のログ内容を消去しません。
- MEMORY
- 現在表示されているメモリー、基底アドレス、およびヒストリー領域を含むメモリー・ウィンドウを消去します。
- MONITOR
- MONITOR について定義されたコマンドを消去します。MONITOR の後に number がない場合、モニター・ウィンドウに
影響を与えるコマンドのリスト全体が消去されます。そのモニター・ウィンドウは
空になります。
- number
- モニターの対象のコマンドを参照する正の整数。整数のリストが指定されない場合、指定されたリストに表示されたすべての
コマンドは消去されます。
- ON (PL/I)
- 以前の ON コマンドの指定を無効にします。pli_condition を ON の後に指定していない場合、既存の ON コマンドがすべて消去されます。
- pli_condition
- ON コマンドで定義した例外条件を指示します。
- PROCEDURE
- 以前に定義された Debug Tool プロシージャーを消去します。PROCEDURE の後に procedure_name がない場合、非アクティブのプロシージャーはすべて消去されます。
- procedure_name
- PROCEDURE コマンドと、対応する END コマンドで
区切られた、一連の Debug Tool コマンドの名前。プロシージャーは、その時点ではストレージにあり、アクティブであってはなりません。
- VARIABLES
- 以前に定義された変数およびタグを除去します。VARIABLES の後に identifier がない場合、すべてのセッション変数およびタグが消去されます。
VARIABLES は DECLARE と同等です。
- identifier
- Debug Tool セッション中に宣言されたセッション変数またはタグの名前。このオペランドは、現行のプログラム言語の規則に従わなければなりません。
使用上の注意
例
- ラベル create で、プログラム内に設定されている LABEL ブレークポイント
を除去します。
CLEAR AT LABEL create;
- 以前に定義されている変数 x、y、および z を
除去します。
CLEAR DECLARE (x, y, z);
- MONITOR に定義された 9 番目のコマンドの結果を除去します。
CLEAR MONITOR 9;
- 構造型定義 tagone を除去します (構造体タグを使用して対話式に宣言された
変数はすべて消去済みと見なす)。現行のプログラム言語の設定は C です。
CLEAR VARIABLES struct tagone;
- AT コマンドによっていくつかのブレークポイントを設定した
後、CLEAR コマンドによってそれを除去します (それらの結果
を LIST コマンドによってチェックします)。
AT 50;
AT 56;
AT 55 LIST (r, c);
LIST AT;
CLEAR AT 50;
LIST AT;
CLEAR AT;
LIST AT;
- AT ENTRY * ブレークポイントを消去したい場合には、次のように
指定してください。
CLEAR AT ENTRY *;
または
CLEAR AT GLOBAL ENTRY;
- ブロック MYBLOCK の DATE ブレークポイントを取り除きたい場合は、次のように指定します。
CLEAR AT DATE MYBLOCK;
- 総称 DATE ブレークポイントを除去したい場合は、次のように指定します。
CLEAR AT DATE *;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
CLEAR 接頭部 (フルスクリーン・モード)
ソース・ウィンドウの接頭部域でこのコマンドを入力するときにブレークポイントを消去するか、
またはモニター・ウィンドウの接頭部域でこのコマンドを入力するときに現行の MONITOR コマンド・セットから
選択されたメンバーを消去します。
- integer
- 行に複数のステートメントがある場合、その行内の
相対ステートメント (C および PL/I の場合) または相対 verb (COBOL の場合) を
選択して、ブレークポイントを除去します。デフォルト値は 1 です。最適化 COBOL プログラムでは、最初の相対ステートメントは、最適化プログラムによって廃棄されなかった最初の実行可能ステートメントです。
使用上の注意
- CLEAR 接頭部コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
- モニター・ウィンドウの接頭部域で CL を使用して、モニター・ウィンドウのメンバーを消去します。
例
COMMENT コマンド
COMMENT コマンドを使用すると、コメントをセッション・ログへ挿入
することができます。COMMENT キーワードは省略できません。
- commentary
- セミコロンを含まないコメント・テキスト。テキストの中にセミコロンを使うことはできません。セミコロンの後のテキストは
別の Debug Tool コマンドとして処理されます。DBCS 文字を、コメント内で使用できます。
COMMENT コマンドは実行可能コマンドとして使用することが
できます。すなわち、条件付きコマンドの対象となることはできますが、NULL コマンド
として扱われます。
例
COMPUTE コマンド (COBOL)
COMPUTE コマンドは、指定された参照に演算式の値を割り当てます。COMPUTE キーワードは省略できません。
- reference
- 有効な Debug Tool COBOL 数値参照。
- expression
- 有効な Debug Tool COBOL 数式。
使用上の注意
- 最適化 COBOL プログラムのデバッグをする場合、COMPUTE コマンドを使用して値をプログラム変数に代入できるのは、最初に SET WARNING OFF コマンドを入力するときのみです。
- 最適化 COBOL プログラムをデバッグしている場合、expression を指定すると、最適化プログラムによって廃棄されなかったプログラム変数を参照できます。
- 計算条件またはアテンション割り込みによって Debug Tool を呼び出した場合、変数の
値の設定に代入ステートメントを使用しても、期待した結果は得られない
可能性があります。これは、ステートメント境界での変数値とは反対に、ステートメント内の変数値のあいまいさによるものです。
- COMPUTE は、値を単一の受信先にのみ代入します。COBOL の
場合とは異なり、複数の受信先変数はサポートされません。
- 浮動小数点の受信先はサポートされません。ただし、浮動小数点の値は、MOVE コマンドを使用すれば設定することができます。
- COBOL EQUAL キーワードはサポートされません (「=」を
使用しなければなりません)。
- COBOL ROUNDED および SIZE ERROR の句はサポート
されないため、END-COMPUTE はサポートされません。
- expression に複数のオペランドがある場合には、COMPUTE を使用
して、ウィンドウ化日付フィールドを使用する計算はできません。
- expression 内でオペランドとして指定された拡張日付フィールドは、非日付フィールドとして
扱われます。
- この expression の計算結果は、常に非日付フィールドと見なされます。
- expression が単一の数値オペランドから構成される
場合、COMPUTE は MOVE として扱われるため、MOVE コマンドと同じ規則に従います。
- PLAYBACK ENABLE コマンドの DATA パラメーターが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に COMPUTE コマンドを使用することができます。COMPUTE コマンドの宛先は、セッション変数でなければなりません。
- 変数に代入される値は、常にその変数のストレージに代入されます。最適化されたプログラムでは、変数は一時的にレジスターに
割り当てることができ、その変数に割り当てられた新しい値は、プログラムによって使用される値を必ずしも変更しません。
例
- 変数 x に a + 6 の値を代入します。
COMPUTE x = a + 6;
- 変数 mycode に Debug Tool 変数 %PATHCODE + 1 の値を代入します。
COMPUTE mycode = %PATHCODE + 1;
- これは、変数 xx に、式 (a + e(1)) / c * 2 の結果を代入します。
COMPUTE xx = (a + e(1)) / c * 2;
次の例に示すように、このような代入にテーブル・エレメントを
使用することもできます。
COMPUTE itm-2(1,2) = (a + 10) / e(2);
- 値を、TSO または SYSTEM という名前のセッション変数に代入するには、次の例に示すように、参照に "=" を付加してください。
COMPUTE tso= 5;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
CURSOR コマンド (フルスクリーン・モード)
CURSOR コマンドは、Debug Tool セッション・パネルで最後に
保存された位置 (ヘッダー・フィールドを含まない) とコマンド行の間でカーソルを
移動します。
使用上の注意
- カーソル位置を保存するには、コマンド行で CURSOR コマンドを入力してからカーソルを移動し、その後に Enter を押すか、
または PF キーに CURSOR コマンドを割り当て、カーソルを移動してから PF キーを押します。
- CURSOR コマンドがコマンド行で他のコマンドより先にある場合、カーソルは、そのコマンドが実行される前に移動されます。これは、ウィンドウの 1 つで繰り返し実行されるコマンドのカーソル移動を
保存するのに役立ちます。
- CURSOR コマンドは記録されません。
例
Debug Tool セッション・パネルで最後に保存された位置とコマンド行の間で
カーソルを移動します。
CURSOR;
宣言 (アセンブラー、逆アセンブリー、および非言語環境プログラム の COBOL)
宣言を使用して、Debug Tool セッション中に有効なセッション変数を宣言します。セッション変数は、デバッグ・セッションの全体または宣言がなされたプロセスを通じて
有効になっています。宣言によって宣言された変数は、他の Debug Tool コマンドで、コンパイラーに対して
宣言された変数と同様に使用されます。宣言された変数の除去は、Debug Tool セッションの終了時、また
は CLEAR コマンドがそれらの除去に使用された
ときに行われます。
- identifier
- 有効なアセンブラー ID。
- F、FLn、X、XLn、C、CLn、H、HLn、A、ALn、B、BLn、P、PLn、Z、ZLn、E、D、L
- アセンブラー DC 命令で使用される型に対応する型コード。これらの型コードの意味について詳しくは、「High Level
Assembler for MVS & VM & VSE: Language Reference」を参照してください。
使用上の注意
有効な n 値の範囲は、次のように、型指定子により異なります。
- C および X: 1 から 65525。
- F、H、および A: 1 から 4。
- B: 1 から 256。
- P および Z: 1 から 16。
宣言 (C および C++)
宣言を使用して、Debug Tool セッション中で有効なセッション変数およびタグを宣言します。セッション変数は、デバッグ・セッションの全体または宣言がなされたプロセスを通じて
有効になっています。宣言を使用して宣言された変数およびタグは、別の Debug Tool コマンドでも
コンパイラーに対して宣言されたものと同様に使用可能です。宣言された変数およびタグの除去は、Debug Tool セッションの終了時、また
は CLEAR コマンドがそれらの除去に使用された
ときに行われます。キーワードは、大文字と小文字を正しく使用することが必要で、省略はできません。
enum、struct、および union データ・タイプも宣言する
ことができます。構文は、enum メンバーが任意で符号づけされた整数定数に対してしか
初期設定できないことを除き、C と同一です。
- *
- C の間接演算子。
- identifier
- 有効な C の ID。
- integer
- 有効な C の配列結合整定数。
- constant_expr
- 有効な C の整定数。
使用上の注意
例
- 2 つの C 整数を定義します。
int myvar, hisvar;
- 次の値を表す列挙型変数 status を定義します。
列挙型定数 表示
run 0
create 1
delete 5
suspend 6
enum statustag {run, create, delete=5, suspend} status;
- struct 宣言で変数を定義します。
struct atag {
char foo;
int var1;
} avar;
- 構造体タグを使用して対話式に変数を宣言します。
struct tagone {int a; int b;} c; この後続けて次のものを指定します。
struct tagone d;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
宣言 (COBOL)
宣言を使用して、Debug Tool セッション中に有効なセッション変数を宣言します。セッション変数は、デバッグ・セッションの全体または宣言がなされたプロセスを通じて
有効になっています。宣言によって宣言された変数は、他の Debug Tool コマンドで、コンパイラーに対して
宣言された変数と同様に使用されます。宣言された変数の除去は、Debug Tool セッションの終了時、また
は CLEAR コマンドがそれらの除去に使用された
ときに行われます。キーワードを省略することはできません。
- level
- 1 または 77。
- identifier
- 有効な COBOL データ名 (DBCS データ名を含む)。
- picture
- S と X と 9 の 3 種類の文字で作成した文字列 (複製係数はオプション)。
picture が X(*) でない
場合、COBOL USAGE 文節が必要です。
使用上の注意
- 宣言はコマンド・リストでは使用できません。例えば、IF コマンド
あるいは WHEN 文節の対象として使用することはできません。
- BINARY と COMP は同義です。
- COMPUTATIONAL-4 の代わりに、BINARY か COMP を
使用してください。
- COMP-1 は短精度浮動小数点です (4 バイト)。
- COMP-2 は 長精度浮動小数点です (8 バイト)。
- COBOL PICTURE と USAGE 文節のみがサポートされます。
- 短形式の COMPUTATIONAL (COMP) はサポートされます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
- 関連資料
- Enterprise COBOL for z/OS 言語解説書
DECLARE コマンド (PL/I)
DECLARE コマンドで、Debug Tool セッション中に有効なセッション変数を宣言します。この方法で宣言された変数は、他の Debug Tool コマンドで、コンパイラーに対して宣言された変数と同様に使用
されます。一時変数は、Debug Tool セッションが終了すると、CLEAR コマンドによって
除去します。キーワードを省略することはできません。
- level
- 符号なし正の整数。大構造にはレベル 1 の指定が必要です。
- name
- 有効な PL/I ID。名前は、特定の構造レベルの範囲で固有であることが必要です。
名前の競合が発生すると、Debug Tool は、実行中のプログラムに出てくる同じ名前の他の変数より先に、セッション変数を使用します。Debug Tool セッション中にプログラム変数を参照するには、修飾を活用してください。例えば、DECLARE コマンドで宣言した変数 a と
プログラム内の変数 a を表示するには、次の LIST コマンド
を出します。
LIST (a, %BLOCK:a);
変数が以前 DECLARE コマンドで定義済みのために名前の競合が
発生した場合、新しい宣言が以前の宣言を変更します。
- attribute
- PL/I データまたはストレージの属性を指定します。
PL/I データ属性として指定可能なものは、次のとおりです。
BINARY CPLX FIXED LABEL PTR
BIT DECIMAL FLOAT OFFSET REAL
CHARACTERS EVENT GRAPHIC POINTER VARYING
COMPLEX
PL/I のストレージ属性として指定可能であるものは、次のとおりです。
BASED ALIGNED UNALIGNED
ポインターの指定に BASED オプションは使用できません。
属性は 1 つだけ指定可能です。次に示すような DECLARE は認められません。
DCL (a(2), b) PTR;
DCL (x REAL, y CPLX) FIXED BIN(31);
また、精度の属性とスケール因数と大きさの範囲が指定可能です。セッション変数に大きさと範囲がある場合、PL/I 言語の規則に従って宣言する必要があります。
使用上の注意
- DECLARE はサブコマンドとしては使用できません。すなわち、DO/END または BEGIN/END ブロックの中での
使用はできません。
- 初期設定はサポートされません。
- プログラムの DEFAULT ステートメントが DECLARE コマンドに
影響を与えることはありません。
- Enterprise PL/I プログラムをデバッグしている場合、配列、構造、係数の属性、または複数セッション変数を 1 つのコマンド行で宣言することはできません。
- DECLARE コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- ポインターとして使用可能の変数として、x、y、および z を宣言します。
DECLARE (x, y, z) POINTER;
- 2 進、15 ビットの固定小数点データ項目の変数として、a を宣言します。
DECLARE a FIXED BIN(15);
- 2 進、浮動小数点、複素数データ項目を表す変数として、d03 を宣言します。
DECLARE d03 FLOAT BIN COMPLEX;
この d03 は、FLOAT BINARY(21) の属性を持ちます。
- x をポインターとして、また、setx を固定小数点データ項目
の構造エレメント a および b をもつ主要構造として宣言します。
DECLARE x POINTER, 1 setx, 2 a FIXED, 2 b FIXED;
この a および b は、FIXED DECIMAL(5) の
属性を持ちます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連資料
- Enterprise PL/I for z/OS 言語解説書
DESCRIBE コマンド
DESCRIBE コマンドは、参照、コンパイル単位、既知のロード・モジュール、ランタイム環境、および CICS チャネルおよびコンテナーのファイル割り振りまたは属性を表示します。

- CURSOR (フルスクリーン・モードのみ)
- 変数、構造、および配列を記述するためのカーソル制御メソッドを提供します。DESCRIBE を PF キーに割り当ててある場合、特定の変数の属性を
表示するには、その変数のところにカーソルを移動して、割り当てられた PF キーを押します。
- ALLOCATIONS
- 現行のファイル割り振りを表示します。
- USER
- ユーザーのアドレス・スペースに割り振られたファイルの内容を説明するよう指示します。
- ALL
- USER 割り振りおよび SYSTEM 割り振りの両方の内容を説明するよう指示します。
- SYSTEM
- 以下の割り振りのすべての内容を説明するよう指示します。
- LINKLIST
- 現行の LINKLIB、JOBLIB、STEPLIB、および TASKLIB 割り振りの内容を説明するよう指示します。
- LPALIST
- 現行の LPA リストの内容を説明するよう指示します。
- APFLIST
- APF 許可データ・セットの現行のリストの内容を説明するよう指示します。
- CATALOG
- アクティブなカタログの現行のリストの内容を説明するよう指示します。
- PARMLIB
- 現行の PARMLIB 連結の内容を説明するよう指示します。
- PROCLIB
- 現行の PROCLIB 連結の内容を説明するよう指示します。
- ATTRIBUTES
- 指定された変数の属性、または C および C++ では、式を表示します。属性は、通常の変数の宣言に示される属性か、またはそのデフォルトの規則によって想定される属性です。DESCRIBE ATTRIBUTES は、現行のプログラム言語にアクセス可能な
変数についてのみ機能します。現在修飾されているブロック内のすべての変数は、オペランドが指定されない場合に記述されます。
- reference
- 現行のプログラム言語で有効な Debug Tool 参照。次の点に注意してください。
C および C++ では、これは、有効な式です。C および C++ の式では、タイプが唯一表示される属性です。C および C++ の構造体またはクラスの場合、DESCRIBE ATTRIBUTES は、構造体またはクラスの属性だけを表示します。構造体内部のデータ・オブジェクトの属性またはクラス内のデータ・メンバー
を表示するには、特定のデータ・オブジェクトまたはメンバーに
対して DESCRIBE ATTRIBUTES を使用します。
COBOL の場合、DATA DIVISION に表示されたユーザー定義名の
いずれかになります。名前は、それらの定義ごとに添え字付けまたはサブストリング化されます (すなわち、英数字データまたは配列として
定義されます)。
PL/I では、変数が構造体に属する場合、上位の親から大きさの属性を継承します。継承された大きさの属性は、変数の宣言の一部であったかのように見えます。
最適化 COBOL プログラムでは、reference が最適化プログラムによって廃棄された変数を参照する場合、アドレス情報はメッセージによって置換されます。
- 'reference'
- 有効な Debug Tool 非言語環境プログラム の COBOL 参照。非言語環境プログラム の COBOL では、この形式を使用する必要があります。1 つの単純変数または IN または OF 修飾が付いた 1 つの変数を含めることができます。
- *
- すべての変数をコンパイル単位で記述します。* は、アセンブラー、逆アセンブリー、PL/I、または非言語環境プログラム の COBOL
のプログラムではサポートされません。
- CHANNEL
- Web サービス状態データを保持するコンテナーを含む、CICS チャネルおよびコンテナーを記述します。以下のいずれかのサブオプションを指定できます。
- channel_name
- チャネル channel_name のすべてのコンテナーを記述します。
- *
- 現在の有効範囲にあるすべてのチャネルのすべてのコンテナーを記述します。
- SOAP
- すべての SOAP コンテナーを記述します。SOAP は DFHNODE の同義語です。
サブオプションを指定しないと、Debug Tool は現行チャネルのすべてのコンテナーをリストします。
- CUS
- コンパイル単位の属性 (コンパイラー・オプションおよび内部ブロックのリストなどを含む) を記述します。戻される情報は、コンパイル単位をコンパイルする HLL によって異なります。CUS は PROGRAMS と同等です。
- cu_spec
- 属性をリストするコンパイル単位の名前。
- *
- すべてのコンパイル単位を記述します。
- PROGRAMS
- CUS と同等です。
- ENVIRONMENT
- 戻される情報には、現在オープンされているファイルのリストを含みます。オープンされていたが現在クローズされているファイルの名前は、
そのリストにはありません。COBOL、アセンブラー、および逆アセンブリー
では、DESCRIBE ENVIRONMENT についての情報は何も提供されません。
- LOADMODS
- このコマンドは、Debug Tool に認識されているロード・モジュールと、これらのロード・モジュール内の既知または潜在的 CU に関する情報を表示します。
オペランドを指定しない場合は、現在アクティブなロード・モジュールが想定されます。
- *
- アドレス、長さ、エントリー・ポイント、およびモジュールのロード元であるデータ・セットとともに、Debug Tool に認識されたすべてのロード・モジュールの
リストを表示します。
- load_spec
- 指定したロード・モジュール (複数可) と、そのロード・モジュール内のすべての既知または潜在 CU に関する情報を表示します。
この CU 情報は、CSECT 名、アドレス、長さ、プログラミング言語で構成されます。
使用上の注意
例
- argc、argv、boolean、i、ld、および
structure の属性を記述します。
DESCRIBE ATTRIBUTES (argc, argv, boolean, i, ld, structure);
- 現在の環境を記述します。
DESCRIBE ENVIRONMENT;
- プログラム myprog の記述についての情報を表示します。
DESCRIBE PROGRAMS myprog;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
DISABLE コマンド
DISABLE コマンドは、AT またはパターン・マッチ・ブレークポイントを操作不能にします。ただし、ブレークポイントは消去されません。後で、ENABLE コマンドを使用してそのブレークポイントを操作可能にできます。
- AT_command
- 使用可能な AT コマンド。AT コマンドは、every_clause および command が
省略されていることを除き、完全に入力する必要があります。有効な形式は、CLEAR AT で許可された形式と同じです。
- DTCN PROGRAM、CADP PROGRAM、または CADP CU
- DTCN または CADP プロファイルに指定されたプログラムまたはコンパイル単位と、prog_id または cu_id に指定されたプログラムまたはコンパイル単位が一致した場合に、そのプログラムまたはコンパイル単位によって Debug Tool が始動されないようにします。以下の比較が行われます。
- DTCN の場合、prog_id は「Program Id(s)」フィールドに指定された内容と比較されます。
- CADP の場合、prog_id は「Program」フィールドに指定された内容と比較され、cu_id は「Compile Unit」フィールドに指定された内容と比較されます。
特定の名前 (例えば、PROG1) またはワイルドカード文字で部分的な名前を (たとえば、EMPL*) を指定することができます。
使用上の注意
- DISABLE CADP および DISABLE DTCN コマンドは、リモート・デバッグ・モードで使用できます。
- DISABLE コマンドは、活動状態または中断状態のブレークポイントを使用不可にするために使用できます。
ただし、このコマンドは、中断状態のラベル・ブレークポイントを使用不可にするためには使用できません。
- 中断状態のブレークポイントを使用不可にする場合は、ロード・モジュールと CU 名の両方を指定する必要があります。
- 使用禁止の AT コマンドを再び使用可能にする
には、ENABLE コマンドを使用してください。
- AT コマンドを使用禁止にしても、重複する AT コマンドが
後に指定された場合の新しい (使用可能) バージョンによる置き換えには影響しません。また、CLEAR AT コマンドによる除去を妨げることもありません。
- 特定の AT コマンドで指定した範囲内で使用不可になっているブレークポイント
は影響されませんが、使用可能になっているブレークポイントがないことが判明した特定範囲に
対しては、警告メッセージが出されます。
- DISABLE コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
- CICS で実行されている疑似会話型アプリケーションの場合、DISABLE CADP または DISABLE DTCN コマンドは、現在の CICS 疑似会話型タスクにのみ適用されます。
- PL/I、COBOL、アセンブラー、および逆アセンブリーでは、cu_id または prog_id が大/小文字混合であるか大/小文字の区別がある場合には、その名前を引用符 (") またはアポストロフィ (') で囲む必要があります。
- C および C++ では、cu_id または prog_id は、引用符 (") で囲まれていなくても、常に大/小文字の区別があるものとして扱われます。
例
- コマンド AT ENTRY myprog CALL proc1; によって設定されたブレークポイントを使用不可にします。
DISABLE AT ENTRY myprog;
- ステートメント 25 がループするので次のようにブレークポイントを設定したとします。
AT EVERY 5 FROM 1 TO 100 STATEMENT 25 LIST x;
それを使用禁止にするには、次のように入力します。
DISABLE AT STATEMENT 25;
every_clause やコマンド・リストを再入力する必要はありません。このブレークポイントを復元するためには、次のように入力してください。
ENABLE AT STATEMENT 25;
- 「Program Id(s)」フィールドに PROGA を指定する DTCN プロファイルがあるため、Debug Tool は、PROGA の実行のたびに始動されます。PROGA の実行ごとに毎回 Debug Tool が始動するようにしたくなければ、以下のコマンドを入力します。
DISABLE DTCN PROGRAM(PROGA);
- 「Program」フィールドに PROG1 を、「Compile Unit」フィールドに CU1 を指定する CADP プロファイルがあります。このプログラムおよびコンパイル単位の実行ごとに毎回 Debug Tool が始動するようにしたくなければ、以下のコマンドを入力します。
DISABLE CADP PROGRAM PROG1 CU CU1;
- 「Compile Unit」フィールドに CU1 を指定する CADP プロファイルがあります。このコンパイル単位の実行ごとに毎回 Debug Tool が始動するようにしたくなければ、以下のコマンドを入力します。
- DISABLE CADP PROGRAM * CU CU1;
- DISABLE CADP CU CU1;
- 複数の CADP プロファイルがあるときは、それらのいずれかのプロファイルと一致するプログラムが存在すると、Debug Tool はそのたびに始動されます。このプログラムがいずれかのプロファイルと一致するたびに Debug Tool が始動するようにしたくなければ、以下のコマンドを入力します。
DISABLE CADP *;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
DISABLE 接頭部 (フルスクリーン・モード)
ユーザーがソース・ウィンドウの接頭部域でこのコマンドを出すと、ステートメント・ブレークポイントまたはオフセット・ブレークポイントが使用不可になります。
- integer
- 行内の相対ステートメント (C および C++ または PL/I の場合) または相対 verb (COBOL の
場合) を選択します。デフォルトは 1 です。
例
行の 3 番目のステートメントまたは verb でブレークポイントを使用禁止に
します (そのステートメントがある行の接頭部域に次のコマンドを入力
することによって)。
DIS 3
キーワードと整数の間にはスペースを入れる必要は
ありません。DIS 3 は DIS3 と同じです。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
DO コマンド (アセンブラー、逆アセンブリー、非言語環境プログラムの COBOL)
DO コマンドは、グループ化された 1 つ以上のコマンドを実行します。DO と END キーワードは、DO グループと
呼ばれているコマンドのグループを区切ります。キーワードを省略することはできません。
- command
- 有効な Debug Tool コマンド。
do/while コマンド (C および C++)
do/while コマンドは、テスト式を評価する前にコマンドを実行することができます。この実行命令によって、そのコマンドは少なくとも 1 回実行することができます。do および while キーワードは小文字でなければならず、省略することはできません。
- command
- 有効な Debug Tool コマンド。
- expression
- 有効な Debug Tool C および C++ 式。
ループの本文は、while 文節 (制御部) が評価される前に実行されます。do/while 文節コマンドをさらに実行するか否かは、while 文節の値によります。while 文節が偽と評価されない場合、コマンドは再び実行されます。それ以外の場合、コマンドの実行は終了します。
while 文節が偽と評価されなくても、break コマンドが原因で do/while コマンドの
実行が終了してしまう場合もあります。
使用上の注意
do/while コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
次のコマンドは、1 の入力を要求します。1 を入力すると、コマンドは実行を終了します。それ以外の場合、コマンドは新たなプロンプトを表示します。
int reply1;
do {
printf("Enter a 1.¥n");
scanf("%d", &reply1);
} while (reply1 != 1);
DO コマンド (PL/I)
DO コマンドを使用すると、1 つ以上のコマンドをグループにまとめ、繰り返し実行 (オプションで) することができます。DO と END キーワードは、まとめて DO グループと
呼ばれているコマンドのグループを区切ります。キーワードを省略することはできません。
単純型
- command
- 有効な Debug Tool コマンド。
反復型
- WHILE
- コマンド・リストの実行前に、毎回、expression を評価するように
指定します。式の評価が真になると、コマンドが実行され、DO グループは
もう 1 サイクル進みます。評価が偽の場合は、DO グループの実行が終了します。
- expression
- 有効な Debug Tool PL/I ブール式。
- UNTIL
- コマンド・リストの実行後に、毎回、expression を評価するように
指定します。式の評価が偽になると、コマンドが実行され、DO グループはもう 1 サイクル
進みます。評価が真の場合は、DO グループの実行が終了します。
- command
- 有効な Debug Tool コマンド。
反復

- reference
- 有効な Debug Tool の PL/I の参照。
- expression
- 有効な Debug Tool の PL/I の式。
- BY
- expression を DO グループへの入り口で評価し、結果を
保存するよう指定します。保存された値が、DO グループを実行するごとに、制御変数に加算する増分になります。
BY expression が DO グループの指定に
なく、TO expression の指定がある
場合、expression のデフォルトは 1 の値になります。
BY 0 の指定がなされていると、DO グループの
実行は、WHILE または UNTIL オプションによる停止、あるいは、DO グループの外への
制御の移動がない限り、無限に継続します。
BY オプションによって、制御変数を正または負の固定増分だけ
加減することができます。
- TO
- expression を、DO グループの入り口で評価し、結果を
保存するよう指定します。保存された値が、制御変数の終了値になります。
TO expression が DO グループの指定に
なくて、BY expression の指定がある場合、反復実行は、WHILE または UNTIL オプションにより
それが終了するまで、あるいはいずれかのステートメントで制御
が DO グループの外に移動するまで、継続します。
TO オプションによって、制御変数を正または負の固定増分だけ
加減することができます。
- REPEAT
- DO グループを実行する度にその後で expression を
評価し、制御変数に代入を行うよう指定します。反復実行は、WHILE または UNTIL オプションにより
それが終了するまで、あるいは、いずれかのステートメントで制御
が DO グループの外に移動するまで継続します。
REPEAT オプションにより、制御変数の値を非線形に
変更することが可能です。ポインターなど、非算術的な制御変数にも、このオプションを使用できます。
- WHILE
- コマンド・リストの実行前に、毎回、expression を評価するように
指定します。式の評価が真になると、コマンドが実行され、DO グループは
もう 1 サイクル進みます。評価が偽の場合は、DO グループの実行が終了します。
- UNTIL
- コマンド・リストの実行後に、毎回、expression を評価するように
指定します。式の評価が偽になると、コマンドが実行され、DO グループはもう 1 サイクル
進みます。評価が真の場合は、DO グループの実行が終了します。
- command
- 有効な Debug Tool コマンド。
使用上の注意
DO コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- ステートメント 25 で、変数 a を初期設定し、変数 x、y、および
z の値を表示します。
AT 25 DO; %BLOCK:>a = 0; LIST (x, y, z); END;
- ctr が 4 より大きくなるか、0 より小さくなる
まで、DO グループを実行します。
DO UNTIL (ctr > 4) WHILE (ctr >= 0); END;
- i の値を 1、2、4、8、16、32、64、128、および 256 に
して DO グループを実行します。
DO i = 1 REPEAT 2*i UNTIL (i = 256); END;
- j の値を 1 から 20 にして、k の値が 1 である
場合に限り、DO グループの実行を反復します。
DO j = 1 TO 20 BY 1 WHILE (k = 1); END;
ENABLE コマンド
ENABLE コマンドは、AT またはパターン・マッチ・ブレークポイントが DISABLE コマンドで無効にされた後で、そのブレークポイントをアクティブにします。
- AT_command
- 使用不可になっている AT コマンドを指定します。AT コマンドは、every_clause および command が
省略されていることを除き、完全に入力する必要があります。有効な形式は、CLEAR AT で許可された形式と同じです。
- DTCN PROGRAM、CADP PROGRAM、または CADP CU
- 前に DISABLE コマンドで無効にされた CADP または DTCN プロファイルを再び有効にします。prog_id または cu_id に指定する名前は、DISABLE コマンドで指定した prog_id または cu_id と一致する必要があります。
prog_id も cu_id も指定しないと、Debug Tool は前に無効にしたすべての DTCN または CADP プロファイルを有効にします。無効にされていないプロファイルに対して prog_id または cu_id を指定しようとすると、Debug Tool はエラー・メッセージを表示します。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
ENABLE 接頭部 (フルスクリーン・モード)
ユーザーがソース・ウィンドウの接頭部域でこのコマンドを出すと、使用不可のステートメント・ブレークポイントまたは使用不可のオフセット・ブレークポイントが使用可能になります。
- integer
- 行内の相対ステートメント (C および C++ または PL/I の場合) または相対 verb (COBOL の
場合) を選択します。デフォルト値は 1 です。最適化 COBOL プログラムでは、デフォルト値は、最適化プログラムによって廃棄されなかった最初の実行可能ステートメントです。
例
行の 3 番目のステートメントまたは verb でブレークポイントを使用可能にします (そのステートメントがある行の
接頭部域には次のように入力します)。
ENABLE 3
キーワードと整数の間には、区切り文字としてのスペースは必要はありません。したがって、ENABLE 3 は ENABLE3 と同じです。
EVALUATE コマンド (COBOL)
EVALUATE コマンドは、ネストされた一連の IF ステートメント
に簡単な表記法を提供します。キーワードを省略することはできません。
- constant
- 有効な Debug Tool COBOL 定数。
- expression
- 有効な Debug Tool COBOL 算術式。
- reference
- 有効な Debug Tool COBOL 参照。
- condition
- 単一比較条件。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- 単一の対象だけがサポートされます。
- 関連するコマンドを持たない連続した WHEN はサポートされません。
- THROUGH/THRU の範囲は定数または参照として指定できます。
- 以下の COBOL キーワードの説明については、「Enterprise COBOL for z/OS 言語解説書」を参照してください。
- ANY
- FALSE
- NOT
- OTHER
- THROUGH
- THRU
- TRUE
- WHEN
- Debug Tool は、EVALUATE コマンドを
一連の IF コマンドとして実行します。
- PLAYBACK ENABLE コマンドの DATA オプションが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に EVALUATE コマンドを使用することができます。
- 最適化 COBOL プログラムでは、reference の値は最適化プログラムによって廃棄された変数を参照できません。
- COBOL 変数が国別として定義され、
それが英字、英数字オペランド、または国別数字との比較条件内のオペランドである場合、
国別でないオペランドは、グループ項目の場合を除いて、
その比較が行われる前に ユニコードに変換されます。
条件式における COBOL 変数の使用について詳しくは、「Enterprise COBOL for z/OS 言語解説書」を参照してください。
例
次の例では、EVALUATE コマンド、および IF コマンドの
それに相当するコーディングを示しています。
EVALUATE menu-input
WHEN "0"
CALL init-proc
WHEN "1" THRU "9"
CALL process-proc
WHEN "R"
CALL read-parms
WHEN "X"
CALL cleanup-proc
WHEN OTHER
CALL error-proc
END-EVALUATE;
同等の IF コマンド:
IF (menu-input = "0") THEN
CALL init-proc
ELSE
IF (menu-input >= "1") AND (menu-input <= "9") THEN
CALL process-proc
ELSE
IF (menu-input = "R") THEN
CALL read-parms
ELSE
IF (menu-input = "X") THEN
CALL cleanup-proc
ELSE
CALL error-proc
END-IF;
END-IF;
END-IF;
END-IF;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
expression コマンド (C および C++)
expression コマンドは、所定の式を評価します。式を使用して、変数への値の代入、または関数の呼び出しができます。
- expression
- 有効な Debug Tool C および C++ 式。代入は、C および C++ の代入演算子の 1 つを式に入れることによって影響されます。独立した式の計算結果の値は使用されません。
使用上の注意
- 式における関数呼び出しは、現在実行中のエンクレーブ内の関数に限られます。
- Expression コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- 変数 x、y、z を初期化します。
変数に値を提供する関数を使用できます。
x = 3 + 4/5;
y = 7;
z = 8 * func(x, y);
- y を増分し、omega の 4 による整数除算の剰余
を alpha に代入します。
alpha = (y++, omega % 4);
- 逆アセンブル表示で R1 へ新しい値をリストして代入するには、次のようにします。
LIST(R1);
R1 = 0x0001FAF0;
FIND コマンド
FIND コマンドを使用すると、ソース・オブジェクトでフルスクリーン・モードおよび行モードの検索を行ったり、ログ・オブジェクトおよびモニター・オブジェクトをフルスクリーンで検索したりできます。

- string
- 現行プログラム言語の文字ストリング定数の構文に適合する、検索するストリング。このストリングは、次の制限事項に従う必要があります。
- ストリング長は、128 バイトを超えることはできません。
- ストリングにスペースが含まれているか、またはストリングがアスタリスク (*)、疑問符 (?)、またはセミコロン (;) の
いずれかである場合は、以下の規則で説明されているように、ストリングを引用符 (") またはアポストロフィ (') で囲む必要があります。
- C および C++ の場合は、引用符 (") を使用します。
- COBOL、アセンブラー、逆アセンブリー、または PL/I の場合は、引用符 (") またはアポストロフィ (') を使用します。
表 5. 引用符 (") およびアポストロフィ (') を FIND コマンドのストリングに指定する方法の例
| C |
C++ |
COBOL または非言語環境プログラム の COBOL |
アセンブラーまたは逆アセンブリー |
PL/I |
| "ABC" |
"IntLink::*" |
"A5" または 'A5' |
'ABC'、"ABC"、または C'ABC' |
'ABC' または "ABC" |
- ストリングに引用符 (") またはアポストロフィ (') が含まれている場合は、そのストリングの指定で、偶数個の引用符またはアポストロフィを使用しなければならないことがあります (これは、
バランスを取る とも呼ばれます)。以下の規則に従って、ストリングのバランスを取る方法を判別します。
- PL/I の場合、ストリングにアポストロフィが 1 つ含まれるときは、そのアポストロフィのすぐ後にアポストロフィを 1 つ追加する必要があります。ストリングにスペースが含まれるときは、ストリング全体をアポストロフィで囲みます。
- C および C++ の場合、ストリングに引用符が 1 つ含まれるときは、その引用符のすぐ後に引用符を 1 つ追加する必要があります。ストリングにスペースが含まれるときは、ストリング全体を引用符で囲みます。
- アセンブラー、COBOL、または逆アセンブリーの場合、ストリングにアポストロフィが 1 つ含まれ、ストリング自体がアポストロフィで区切られているときは、ストリングの中にあるアポストロフィのすぐ後にアポストロフィを 1 つ追加する必要があります。ストリングに引用符が 1 つ含まれ、ストリング自体が引用符で区切られているときは、ストリングの中にある引用符のすぐ後に引用符を 1 つ追加する必要があります。ストリングにスペースが含まれるときに、引用符のバランスを取る必要はありません。しかし、引用符またはアポストロフィでストリング全体を囲む必要があります。
オペランドが指定されていないと、繰り返し FIND が実行されます。
繰り返し FIND については、使用上の注意および「Debug Tool ユーザーズ・ガイド」に説明があります。
- *
- 前の FIND コマンドのストリングを使用します。
- leftcolumn
- 検索の左端の桁を指定する正整数。ソース・ウィンドウおよび行モードでのみサポートされます。ログ・ウィンドウとモニター・ウィンドウでは無視されます。rightcolumn および * が省略された場合は、ストリングが leftcolumn で始まっている必要があります。
- rightcolumn
- 検索の右端の桁を指定する正整数。ソース・ウィンドウおよび行モードでのみサポートされます。ログ・ウィンドウとモニター・ウィンドウでは無視されます。
- *
- 各ソース・レコードの長さが検索の右端の桁として使用されるように指定します。ソース・ウィンドウおよび行モードでのみサポートされます。ログ・ウィンドウとモニター・ウィンドウでは無視されます。
- FIRST
- オブジェクトの先頭から開始し、順方向に検索してストリングの最初のオカレンスを見つけます。
- LAST
- オブジェクトの最後から開始し、逆方向に検索してストリングの最後のオカレンスを見つけます。
- NEXT
- 現在のカーソル位置より後ある最初の位置から開始し、順方向に検索してストリングの 1 つ後のオカレンスを見つけます。
- PREV
- 現在のカーソル位置から開始し、逆方向に検索してストリングの 1 つ前のオカレンスを見つけます。
- CURSOR (フルスクリーン・モード)
- 検索されたオブジェクトが現在のカーソル位置で選択されるように指定します。
- LOG (フルスクリーン・モード)
- セッション・ログ・ウィンドウ内のオブジェクトを選択します。
- MONITOR (フルスクリーン・モード)
- モニター・ウィンドウ内のオブジェクトを選択します。
- SOURCE (フルスクリーン・モード)
- ソース・リスト作成ウィンドウ内のオブジェクトを選択します。
使用上の注意
例
- モニター・ウィンドウで名前 myvar を検索することを示します。
FIND myvar MONITOR;
- ソース・ウィンドウから var1 の次のオカレンスを検索したい場合には、単に次のように入力します。
FIND
最後に検索したストリングを Debug Tool が記憶しているので、変数名を指定する必要はありません。ソース・ウィンドウが再び前方にスクロールされ、var1 が強調表示
され、カーソルがその変数を示します。
- PL/I プログラムをデバッグしていて、「Source」ウィンドウで疑問符 (?) を検索する必要がある場合は、次のコマンドを入力します。
FIND '?' ;
- PL/I プログラムをデバッグしていて、「Source」ウィンドウでストリング User's を検索する必要がある場合は、次のコマンドを入力します。
FIND User''s ;
- C プログラムをデバッグしていて、「Source」ウィンドウでストリング User's を検索する必要がある場合は、次のコマンドを入力します。
FIND User's ;
- PL/I プログラムをデバッグしていて、「Source」ウィンドウでストリング User's Guide を検索する必要がある場合は、次のコマンドを入力します。
FIND 'User''s Guide' ;
- C プログラムをデバッグしていて、「Source」ウィンドウでストリング User's Guide を検索する必要がある場合は、次のコマンドを入力します。
FIND "User's Guide" ;
- コマンド FIND xyz LAST; または FIND xyz PREV; を入力して、カーソルが、
検出されたストリング上 ("xyz") にある場合、検索を繰り返すには、FIND コマンドに割り当てられた PF キーを押します。
Debug Tool はコマンド FIND xyz PREV; を実行します。
- FIND xyz; コマンドが入力されると、Debug Tool は順方向に検索します。
ストリング "xyz" を逆方向に検索するには、FIND * PREV; コマンドを入力します。
- COBOL の領域 A の 8 桁目から始まる COBOL パラグラフ定義 paraa を検索する場合は、次のコマンドを入力します。
FIND paraa 8 ;
- COBOL の領域 B で COBOL パラグラフ paraa への参照を検索する場合は、次のいずれかのコマンドを入力します。
for コマンド (C および C++)
for コマンドを使用すると、C および C++ の for ステートメントと
同様に繰り返しループを作成することができます。これによって、次のことが可能になります。
- コマンドの最初の繰り返しの前に式を評価します ("初期設定")。
- コマンドを再度実行しなければならないかどうかを判別する式を指定します ("制御部")。
- コマンドの繰り返しが行われるたびに式を評価します。
- 制御部が偽と評価されない場合に、コマンドまたは block を実行します。
for キーワードは小文字でなければならず、省略することはできません。
- expression
- 有効な Debug Tool C および C++ 式。
- command
- 有効な Debug Tool コマンド。
Debug Tool は、コマンドが初めて実行される前にのみ、最初
の expression を評価します。この式を使用して、変数を初期設定することができます。コマンドの最初の繰り返しの前に式を評価する必要がない場合は、この式を省略することができます。
Debug Tool は、コマンドの実行の前に毎回、2 番目の expression を評価します。この式が偽と評価される場合、コマンドは実行されず、制御は for コマンドに
続くコマンドに移ります。それ以外の場合、コマンドは実行されます。2 番目の式を省略した場合、式がゼロ以外の定数によって置き換えられたことになり、for コマンド
は、この式の失敗によっては終了されることはありません。
Debug Tool は、コマンドの実行の後に毎回、3 番目の expression を評価します。この式を使用すれば、変数の増加、削減、または再初期設定を行うことができます。コマンドの繰り返しの度に式を評価する必要がない場合は、この式を省略することができます。
break コマンドを使用すると、2 番目の式が偽と評価されなくても、for コマンドの終了を
実行することができます。2 番目の式を省略する場合は、break コマンドを使用して、for コマンドの実行を停止
しなければなりません。
使用上の注意
- for コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- 次の for コマンドは、count の値を 20 回リストします。for コマンドは、最初に count の値を 1 に設定します。各コマンドが実行されるたびに、count が増加されます。
for (count = 1; count <= 20; count++)
LIST TITLED count;
代替手法として、上の例は、次のコマンド順序で作成されても同じタスクを実行することができます。
count = 1;
while (count <= 20) {
printf("count = %d¥n", count);
count++;
}
- 次の for コマンドは、初期設定式を含みません。
for (; index > 10; --index) {
varlist[index] = var1 + var2;
printf("varlist[%d] = %d¥n", index, varlist[index]);
}
FREE コマンド
FREE コマンドは、現在割り振られているファイルを解放します。
- ddname
- 解放するファイルの名前。
GO コマンド
GO コマンドは、Debug Tool にユーザーのプログラムの実行を開始または再開させます。
- BYPASS
- ブレークポイントの原因となった条件についてのユーザーまたは
システムの処置をバイパスします。このコマンドが有効とされるのは、次の理由で Debug Tool に入った場合です。
- AT CALL ブレークポイントの発動
- HLL または言語環境プログラム条件の発生
- 言語環境プログラムランタイムなしに実行している場合に、MVS または CICS ABEND で発生した条件
使用上の注意
- GO がコマンド・リストで指定される (例えば、IF コマンド
または WHEN 文節の対象として指定される) 場合、リスト内の後続のコマンドはすべて無視されます。
- ループの本体の中で GO を指定すると、ループの実行は終了します。
- GO コマンドの利用記録を抑止するには、SET ECHO コマンド
を使用してください。
- オペランドが指定されない GO は、未処理の追加 AT 条件が
ある場合、実際にはプログラムを再開しません。
- GO コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
- GO コマンドをリモート・デバッグ・モードで使用するには、「ブレークポイントを追加します」タスクの「オプション・パラメーター」セクションにある「アクション」フィールドでこのコマンドを入力する必要があります。
例
- 実行を再開します。
GO;
- 実行を再開し、ブレークポイントの原因となったユーザーおよびシステムの処置をバイパスします。
GO BYPASS;
- アプリケーションが記憶保護例外によって異常終了したため
に、OCCURRENCE ブレークポイントが起動されました。例外発生の原因となった命令を
訂正し、GO BYPASS; を出して、異常終了が発生しなかったかのように
処理を継続します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
GOTO コマンド
GOTO コマンドを使用すると、Debug Tool は指定されたステートメント ID で
プログラム実行を再開することができます。GOTO キーワードは省略することはできません。
ターゲット位置で、Debug Tool からユーザーに制御を戻したい場合には、その位置にブレークポイントが
あることを確認してください。
使用上の注意
- GOTO コマンドは、逆アセンブルされたプログラムのデバッグ中は使用できません。
- GOTO がコマンド・リストで指定される (例えば、IF コマンドまたは WHEN 文節の対象として指定される) 場合、そのリスト内の後続のコマンドはすべて無視されます。
- プログラムが最小限の最適化でコンパイルされている場合、GOTO ステートメントの使用に制限はありません。
- GOTO コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
- C、C++、および PL/I では、最適化の実行中にコンパイラーによってステートメントが除去されることが
ありますから、GOTO コマンドでは、プログラム実行中に到達可能なステートメントまたは参照を指定してください。LIST STATEMENT NUMBERS コマンドで指示すれば、到達
可能なステートメント番号を判別できます。
- PL/I では、コマンド・リストの中の GOTO で、PLITEST または CEETEST の呼び出しが可能です。
- PL/I では、ブロックの外への GOTO は認められています。しかし、修飾が必要になる場合があります。
- COBOL では、GOTO コマンドは、GOTO ステートメントに
ついての COBOL 言語の規則に従います。GOTO コマンドは以下の状態のプログラムに使用できます。
- コンパイラーによってフックが挿入されコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用する場合は、TEST コンパイラー・オプションの HOOK サブオプションを指定してプログラムをコンパイルします。次のいずれかのコンパイラーを使用する場合は、TEST コンパイラー・オプションの PATH または ALL サブオプション、および SYM サブオプションを指定してプログラムをコンパイルします。
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390 & VM バージョン 2
- コンパイラーによってフックが挿入されず最適化も行わずにコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用する場合は、TEST コンパイラー・オプションの NOHOOK サブオプションを指定してプログラムをコンパイルします。次のいずれかのコンパイラーを使用する場合は、TEST コンパイラー・オプションの NONE サブオプションを指定してプログラムをコンパイルします。
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 2 以降
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 1、APAR PQ63235 適用
- COBOL for OS/390 & VM バージョン 2 リリース 2
- COBOL for OS/390 & VM バージョン 2 リリース 1 (APAR PQ63234 インストール済み)
- コンパイラーによってフックが挿入されず、最適化を行ってコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用してプログラムをコンパイルし、TEST コンパイラー・オプションの EJPD および NOHOOK サブオプションを指定する必要があります。EJPD サブオプションを指定すると、最適化の一部が失われる原因になることがあります。
例
- ステートメント 23 で実行を再開します。このステートメント 23 は、現在アクティブなブロック内に存在
します。
GOTO 23;
ステートメント 23 にブレークポイントがない場合、Debug Tool は、ブレークポイントにヒットするまで、ステートメント 23 から実行されます。
- ステートメント 45 で実行を再開します。このステートメント 45 は、現在アクティブなブロック内に存在します。
AT 45
GOTO 45
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
GOTO LABEL コマンド
GOTO LABEL コマンドを使用すると、Debug Tool は指定された
ステートメント・ラベルでプログラム実行を再開することができます。指定されたラベルは同じブロックになければなりません。
ターゲット位置で、Debug Tool からユーザーに制御を戻したい場合には、その位置にブレークポイントが
あることを確認してください。
- statement_label
- 現在実行中のプログラムの中の有効なステートメント・ラベル、または PL/I で
は、ラベル変数を指定します。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
%IF コマンド (プログラム言語中立)
%IF コマンドを使用すると、条件付きでコマンドを実行することができます。
ELSE 文節を %IF コマンドに任意で指定することができます。テストの式が偽と評価され、ELSE 文節がある場合、その ELSE 文節に関連付けられ
たコマンドが実行されます。キーワードを省略することはできません。
- condition
- サポートされているすべてのプログラム言語に有効な単純比較条件。
- command
- 有効な Debug Tool コマンド、または 1 つ以上の有効な Debug Tool コマンドを含む BEGIN-END グループ。含まれている Debug Tool コマンドは、サポートされているすべてのプログラム言語に有効であることが必要です。
%IF コマンドがネストされ、ELSE 文節がある場合、指定された ELSE は、同じブロック内で一番近くにある先行の %IF 文節に関連付けられます。
使用上の注意
- プログラム言語固有の IF コマンドには、制約事項や使用上の注意がある場合があります。このような制約事項や使用上の注意は、%IF コマンドにも適用されます。
- condition で使用される変数名の構文は、サポートされているすべてのプログラム言語に有効であることが必要です。
- %IF コマンドをネストする場合に、プログラム言語固有の IF コマンドと混用することはできません。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
IF コマンド (アセンブラー、逆アセンブリー、および非言語環境プログラム の COBOL)
IF コマンドを使用すると、条件付きでコマンドを
実行することができます。ELSE 文節を IF コマンドに任意で指定することができます。テストの式が偽と評価され、ELSE 文節がある場合、その ELSE 文節に関連付けられ
たコマンドが実行されます。IF および ELSE キーワードは、省略することはできません。
- condition
- アセンブラー条件式
- 'condition'
- アポストロフィ (') で囲まれた、非言語環境プログラム の COBOL 条件式。
- command
- 有効な Debug Tool コマンド、または 1 つ以上の有効な Debug Tool コマンドを含む DO グループ。
IF コマンドがネストされ、ELSE 文節がある場合、指定された ELSE は、同じブロック内で一番近くにある先行の IF 文節
に関連付けられます。
使用上の注意
IF コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
if コマンド (C および C++)
if コマンドを使用すると、条件付きでコマンドを実行することができます。else 文節を if コマンドに任意で指定することができます。テストの式が偽と評価され、ELSE 文節がある場合、その ELSE 文節に関連付けられ
たコマンドが実行されます。if および else キーワードは小文字でなければならず、省略することはできません。
- expression
- 有効な Debug Tool C および C++ 式。
- command
- 有効な Debug Tool コマンド。
if コマンドがネストされ、else 文節がある場合、指定された else は、同じブロック内で一番近くにある先行の if 文節に関連付けられます。
使用上の注意
- IF 文節が原因で Debug Tool がさらに多くの入力を取得することになる場合 (例えば、USE コマンド、または AT 条件が発生するために Debug Tool が再始動される原因となるコマンドが IF 文節にある場合) には、ELSE 文節が必ず含まれていなければなりません。
- if コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
IF コマンド (COBOL)
IF コマンドを使用すると、条件付きでコマンドを
実行することができます。ELSE 文節を IF コマンドに任意で指定することができます。テストの式が偽と評価され、ELSE 文節がある場合、その ELSE 文節に関連付けられ
たコマンドが実行されます。キーワードを省略することはできません。
- condition
- Item-1 operator Item-2 という形式を使用した単純な比較条件。Item-1 および Item-2 にはデータ項目またはリテラルを指定できます。演算子で指定できる演算は、以下のいずれかです。
- >
- <
- =
- NOT =
- >=
- <=
- NOT<
- NOT >
- command
- 有効な Debug Tool コマンド。
IF コマンドがネストされ、ELSE 文節が
ある場合、指定された ELSE または END-IF は、同じブロック
内で一番近くにある先行の IF 文節と関連付けられます。
COBOL とは異なり、Debug Tool には終了句読点 (;) がコマンドの後に必要です。END-IF キーワードは必須です。
使用上の注意
- IF 文節が原因で Debug Tool がさらに多くの入力を取得することになる場合
(例えば、USE コマンド、または AT 条件が発生するために Debug Tool が再始動される原因となるコマンドが IF 文節にある場合)
には、ELSE 文節が必ず含まれていなければなりません。
- COBOL の NEXT SENTENCE 句はサポートされません。
- ウィンドウ化日付フィールドを使用する組み合わせ比較は、サポートされません。
- 異なる DATE FORMAT 文節を持つ拡張日付フィールド間の比較は、サポートされません。
- PLAYBACK ENABLE コマンドの DATA オプションが有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に IF コマンドを使用することができます。
- 最適化 COBOL プログラムでは、IF 文節は最適化プログラムによって廃棄された変数を参照できません。
- COBOL 変数が国別として定義され、
それが英字、英数字オペランド、または国別数字との比較条件内のオペランドである場合、
国別でないオペランドは、グループ項目の場合を除いて、
その比較が行われる前に ユニコードに変換されます。
条件式における COBOL 変数の使用について詳しくは、「Enterprise COBOL for z/OS 言語解説書」を参照してください。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
IF コマンドで実行できる比較 (COBOL)
次の表に、Debug Tool IF コマンドで実行できる
比較を示します。この表の後にコードの説明があります。
| オペランド |
GR |
AL |
AN |
ED |
BI |
NE |
ANE |
NDI |
NNDI |
ID |
IN |
IDI |
PTR |
@ |
IF |
EF |
D1 |
| Group (GR) |
NN |
NN |
NN |
NN |
NN |
NN |
NN |
NN10 |
|
NN |
|
NN |
|
|
NN |
NN |
|
| Alphabetic (AL) |
NN |
NN |
|
|
|
|
|
NN |
|
|
|
|
|
|
|
|
|
| Alpha numeric (AN)8 |
NN |
|
NN |
|
|
|
|
NN |
|
|
|
|
|
|
|
|
|
| External Decimal (ED)8 |
NN |
|
|
NU |
|
|
|
|
|
|
|
|
|
|
|
|
|
| Binary |
NN |
|
|
|
NU |
|
|
|
|
|
NU4 |
|
|
|
|
|
|
| Numeric Edited (NE) |
NN |
|
|
|
|
NN |
|
|
|
|
|
|
|
|
|
|
|
| Alphanumeric Edited (ANE) |
NN |
|
|
|
|
|
NN |
NN |
|
|
|
|
|
|
|
|
|
| FIGCON ZERO7 |
NN |
|
|
NU |
NU |
|
|
NN |
|
NU |
|
|
|
|
NU |
NU |
|
| FIGCON1、7 |
NN |
NN |
NN |
|
|
|
NN |
NN9 |
NU |
|
|
|
|
|
|
|
|
| National Data Item (NDI) |
NN10 |
NN |
NN |
|
|
|
NN |
NN |
|
|
|
|
|
|
|
|
|
| National Numeric Data Item (NNDI) |
|
|
|
|
|
|
|
|
NN |
|
|
|
|
|
|
|
|
| Numeric Literal7 |
NN |
|
|
NU |
NU |
|
|
|
NN |
NU |
NU4 |
|
|
|
NU |
NU |
|
| Alphanumeric Literal2、7 |
NN |
NN3 |
NN |
|
|
NN |
NN |
NN |
|
|
|
|
|
|
|
|
|
| Alphanumeric hex literal11 |
NN |
NN |
NN |
|
|
NN |
NN |
|
|
|
|
|
|
|
|
|
|
| Internal Decimal (ID)8 |
NN |
|
|
|
|
|
|
|
|
NU |
|
|
|
|
|
|
|
| Index Name (IN) |
NN |
|
|
|
NU4 |
|
|
|
|
|
IO4 |
NU |
|
|
|
|
|
| Index Data Item (IDI) |
NN |
|
|
|
|
|
|
|
|
|
NU |
IV |
|
|
|
|
|
| Pointer Data Item (PTR) |
|
|
|
|
|
|
|
|
|
|
|
|
NU5 |
NU5 |
|
|
|
| Address of (@) |
|
|
|
|
|
|
|
|
|
|
|
|
NU5 |
NU5 |
|
|
|
| Floating Point Literal7 |
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
NU |
NU |
|
| Internal Floating Point (IF) |
NN |
|
|
|
|
|
|
|
|
|
|
|
|
|
NU |
NU |
|
| External Floating Point (EF) |
NN |
|
|
|
|
|
|
|
|
|
|
|
|
|
NU |
NU |
|
| DBCS data item (D1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NN |
| DBCS Literal7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NN |
| Address hex Literal6 |
|
|
|
|
|
|
|
|
|
|
|
|
NU5 |
NU5 |
|
|
|
| National Literal |
NN10 |
|
|
|
|
|
|
NN |
|
|
|
|
|
|
|
|
|
| National Hex Literal12 |
NN10 |
|
|
|
|
|
|
NN |
|
|
|
|
|
|
|
|
|
注:
- 1
- FIGCON には、すべての表意定数 (ZERO およ
び ALL を除く) が入ります。
- 2
- 英数字リテラルは、引用符 (") またはアポストロフィ (') で囲む必要があります。開始区切り文字として使用される引用符またはアポストロフィをストリングに埋め込む場合は、その後にもう 1 つ引用符またはアポストロフィを続けなければなりません。
- 3
- 英字のみ有効です。
- 4
- 比較する前に添え字値に変換される指標名
- 5
- 等号、不等号による比較のみが行われます。
- 6
- 16 進文字のみ有効です。引用符 (") またはアポストロフィ (') で区切られ、その前に H が付きます。
- 7
- 定数およびリテラルを、同じタイプの定数およびリテラルと比較することも
できます。
- 8
- ウィンドウ化日付フィールドを使用する比較は、サポートされません。
- 9
- 表意定数 HIGH-VALUES および LOW-VALUES は、ナショナル・データ項目と比較できません。
- 10
- 内部フォーマットの変換は、比較の前には行われません。
- 11
- 16 進文字のみ有効です。引用符 (") またはアポストロフィ (') で区切られ、その前に X が付きます。
- 12
- 16 進文字のみ有効です。引用符 (") またはアポストロフィ (') で区切られ、その前に NX が付きます。
許容される比較とは、「IBM OS Full American National Standard COBOL」に記述されている比較で、次のものが該当します。
- NN
- 非数値オペランド
- NU
- 数値オペランド
- IO
- 2 つの指標名
- IV
- 指標データ項目
- X
- ユーザー・エラーの可能性が高い
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連資料
- IBM OS Full American National Standard COBOL
IF コマンド (PL/I)
IF コマンドを使用すると、条件付きでコマンドを
実行することができます。ELSE 文節を IF コマンドに任意で指定することができます。テストの式が偽と評価され、ELSE 文節がある場合、その ELSE 文節に関連付けられ
たコマンドが実行されます。キーワードを省略することはできません。
- expression
- 有効な Debug Tool の PL/I の式。
必要な場合、式は BIT ストリングに変換されます。
- command
- 有効な Debug Tool コマンド。
IF コマンドがネストされ、ELSE 文節がある場合、指定された ELSE は、同じブロック内で一番近くにある先行の IF 文節
に関連付けられます。
使用上の注意
- IF 文節が原因で Debug Tool がさらに多くの入力を取得することになる場合
(例えば、USE コマンド、または AT 条件が発生するために Debug Tool が再始動される原因となるコマンドが IF 文節にある場合)
には、ELSE 文節が必ず含まれていなければなりません。
- IF コマンドは、記録されたステートメントを LAYBACK コマンドを使用して再生する間は使用できません。
例
- array1 の値が array2 の値に等しい場合、label_1 のラベル定数があるステートメントに移動します。ユーザー・プログラムの実行は、label_1 から継続されます。array1 の値が array2 の値に等しくない場合、GOTO は
実行されず、制御はユーザー・プログラムに戻ります。
IF array1 = array2 THEN GOTO LABEL label_1; ELSE GO;
- ステートメント 23 にブレークポイントを設定して、変数 j が 10 に等しいか
テストして等しい場合は、変数 rmdr、totodd、およ
び terms(j) の名前と値を表示します。変数 j の値が 10 に等しくない場合は、プログラムの実行を継続します。
AT 23 IF j = 10 THEN LIST TITLED (rmdr, totodd, terms(j)); ELSE GO;
IMMEDIATE コマンド (フルスクリーン・モード)
IMMEDIATE コマンドを使用すると、コマンド・リスト内のコマンドを
即時に実行することができます。このコマンドは、PF キーに割り当てて使用するコマンドに適しています。
IMMEDIATE は、ネストされていないコマンドとして、あるいは
複合コマンド内でのみ入力することができます。
FIND、RETRIEVE、SCROLL、およ
び WINDOW コマンドの PF キー定義には、IMMEDIATE 接頭部を付けることを
お勧めします。これによって、コマンドのグループが入力された場合でも SCROLL などを
行うことができます。
- command
- 次の Debug Tool コマンドのいずれかを指定します。
- FIND
- RETRIEVE
- SCROLL コマンド
- BOTTOM
- DOWN
- LEFT
- NEXT
- RIGHT
- TO
- TOP
- UP
- WINDOW コマンド
使用上の注意
- IMMEDIATE コマンドはログに記録されません。
例
INPUT コマンド (C、C++、および COBOL)
INPUT コマンドは、インターセプトされた読み取りに入力を行います。これはインターセプトされたファイルについての読み取り保留が発生した場合にのみ有効です。INPUT キーワードは省略することはできません。
- text
- 保留読み取りに対するテキスト入力を指定します。
使用上の注意
- text は、INPUT キーワードから
セミコロン (または行末) までです。先行または後書きブランクは、Debug Tool によって除去されます。
- セミコロン (;) が text の一部に含まれる場合、その text は、引用符 (") またはアポストロフィ (') で囲み、文字ストリング定数を引用符またはアポストロフィで囲む際の、現行のプログラム言語の構文規則に従う必要があります。
- 引用符 (") またはアポストロフィ (') が text に含まれる場合、その引用符またはアポストロフィの後に対応するもう 1 つの引用符またはアポストロフィを続けなければなりません。
- このコマンドは CICS ではサポートされません。
- ファイルとの間にインターセプトを設定するには、SET INTERCEPT (C、C++、および COBOL) コマンドを
使用します。
- INPUT コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
Debug Tool に順次ファイルへの入力を求めるプロンプトを
出させるために SET INTERCEPT ON を使用しました。プロンプト・メッセージとファイル名が、コマンド・ログに表示されます。
SET INTERCEPT ON コマンドで指定した DD 名から得ることになって
いた入力を、希望する入力と置き換えるには、次のように指定します。
INPUT text you want to input ;
プログラム入力はユーザーのログ・ウィンドウに記録されます。
このコマンドには、終りのセミコロン (;) が必要です。INPUT キーワードとセミコロンの間にあるものはすべて入力テキストと
見なされます。セミコロンを含めたい場合には、使用するプログラム言語で有効な文字ストリングの形で入力を指定してください。入力に引用符 (") またはアポストロフィ (') を含めたい場合には、引用符またはアポストロフィごとに、その後に対応するもう 1 つの引用符またはアポストロフィを続け、使用するプログラム言語に有効な文字ストリングとして入力する必要があります。
句「quick brown fox」が保留読み取りに入力されることを示します。句はファイルに書き込まれます。
INPUT quick brown fox;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
JUMPTO コマンド
JUMPTO コマンドは、プログラムの実行を再開する位置を指定のステートメントに移動しますが、プログラムの実行を再開することはしません。
使用上の注意
- JUMPTO コマンドは、逆アセンブルされたプログラムをデバッグするときに使用することはできません。
- JUMPTO をコマンド・リストに指定すると (例えば、IF コマンドまたは WHEN 文節の主体として)、
そのリストにある後続のコマンドはすべて無視されます。
- プログラムが最小の最適化でコンパイルされると、JUMPTO コマンドは特定のステートメントには制限されません。
- JUMPTO コマンドは、PLAYBACK コマンドを使用して、記録されたステートメントを再生するときに使用することはできません。
- C、C++、および PL/I プログラムでは、最適化時にコンパイラーによってステートメントが除去されることがあります。
プログラムの実行時に到達可能な JUMPTO コマンドの参照またはステートメントを指定してください。
LIST STATEMENT NUMBERS コマンドで使用すれば、到達可能なステートメントを判別できます。
- PL/I プログラムでは、PLITEST または CEETEST への呼び出し時にコマンド・リストで JUMPTO を使用できます。
- PL/I プログラムでは、現在活動状態のブロックの外にあるステートメントを指定することはできません。
ただし、ステートメントを修飾しなければならない場合があります。
- COBOL プログラムでは、JUMPTO コマンドは、GOTO ステートメントに適用される COBOL 言語の規則に従います。
JUMPTO コマンドは以下の状態のプログラムに使用できます。
- コンパイラーによってフックが挿入されコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用する場合は、TEST コンパイラー・オプションの HOOK サブオプションを指定してプログラムをコンパイルします。次のいずれかのコンパイラーを使用する場合は、TEST コンパイラー・オプションの PATH または ALL サブオプション、および SYM サブオプションを指定してプログラムをコンパイルします。
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390 & VM バージョン 2
- コンパイラーによってフックが挿入されず最適化も行わずにコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用する場合は、TEST コンパイラー・オプションの NOHOOK サブオプションを指定してプログラムをコンパイルします。次のいずれかのコンパイラーを使用する場合は、TEST コンパイラー・オプションの NONE サブオプションを指定してプログラムをコンパイルします。
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 2 以降
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 1、APAR PQ63235 適用
- COBOL for OS/390 & VM バージョン 2 リリース 2
- COBOL for OS/390 & VM バージョン 2 リリース 1 (APAR PQ63234 インストール済み)
- コンパイラーによってフックが挿入されず、最適化を行ってコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用してプログラムをコンパイルし、TEST コンパイラー・オプションの EJPD および NOHOOK サブオプションを指定する必要があります。EJPD サブオプションを指定すると、最適化の一部が失われる原因になることがあります。
- JUMPTO コマンドをリモート・デバッグ・モードで使用するには、「ブレークポイントを追加します」タスクの「オプション・パラメーター」セクションにある「アクション」フィールドでこのコマンドを入力する必要があります。
例
ステートメント 24 にジャンプして、そこで停止します。
次のコマンドを入力します。
JUMPTO 24;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
JUMPTO LABEL コマンド
JUMPTO LABEL コマンドは、プログラムの実行を再開する位置を指定のラベルに移動しますが、
プログラムの実行を再開することはしません。
- statement_label
- 現在実行中のプログラムの中の有効なステートメント・ラベル、または PL/I で
は、ラベル変数を指定します。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST コマンド
LIST コマンドは、指定された変数、構造、配列、レジスター、ステートメント番号、頻度情報の値、およびプログラム実行の流れなどの、プログラムに
ついての情報を表示します。LIST コマンドを使用して、どのエンクレーブの情報でも表示できます。表示されたすべての情報は、ログ・ファイルに保管されます。
次の表は、LIST コマンドの形式を要約しています。
LIST (ブランク) コマンド
ソース識別パネルを表示して、ソース・ウィンドウに表示したソース・リスト
またはソース・ファイルと、それらのプログラム・ユニットとの関連を示します。LIST は PANEL LISTINGS およ
び PANEL SOURCES と同じです。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST AT コマンド
現在定義されているブレークポイントをリストします。指定されたブレークポイントが活動化された場合に取られる処置も含めて
リストします。アクションが定義されないと、Debug Tool により NULL コマンドが表示されます。

- AT_command
- 少なくとも 1 つのオペランドをもつ有効な AT コマンド。AT コマンドは、every_clause および command が省略されていることを除き、完全に入力する必要があります。
- ENABLED
- リストを使用可能なブレークポイントに制限します。デフォルトには、使用可能なブレークポイントと使用禁止のブレークポイントの両方をリストします。
- DISABLED
- リストを使用禁止のブレークポイントに制限します。デフォルトには、使用可能なブレークポイントと使用禁止のブレークポイントの両方をリストします。
- ALLOCATE
- 現在定義されている AT ALLOCATE ブレークポイントをリストします。
- APPEARANCE
- 現在定義されている AT APPEARANCE ブレークポイントをリストします。
- CALL
- 現在定義されている AT CALL ブレークポイントをリストします。
- CHANGE
- 現在定義されている AT CHANGE ブレークポイントをリストします。これは、すべての AT CHANGE 対象のストレージ・アドレスと長さを
表示し、(%STORAGE 関数によって指定されていない場合に) それらが
どのように指定されたかを示します。
- DATE
- 現在定義されている AT DATE ブレークポイントをリストします。
- DELETE
- 現在定義されている AT DELETE ブレークポイントをリストします。
- ENTRY
- 現在定義されている AT ENTRY ブレークポイントをリストします。
- EXIT
- 現在定義されている AT EXIT ブレークポイントをリストします。
- GLOBAL
- AT 条件について現在定義されている AT GLOBAL ブレークポイントを
リストします。
- LABEL
- 現在定義されている AT LABEL ブレークポイントをリストします。
- LINE
- 現在定義されている AT LINE または AT STATEMENT ブレークポイントを
リストします。
LINE は、STATEMENT と同等です。
- LOAD
- 現在定義されている AT LOAD ブレークポイントをリストします。
- OCCURRENCE
- 現在定義されている AT OCCURRENCE ブレークポイントをリストします。
- OFFSET
- 現在定義されている AT OFFSET ブレークポイントをリストします。
- PATH
- 現在定義されている AT PATH ブレークポイントをリストします。
- STATEMENT
- これは、LINE と同等です。
- SUSPENDED
- 中断状態のブレークポイントをすべてリストします。
- TERMINATION
- 現在定義されている AT TERMINATION ブレークポイントをリストします。
AT コマンド・タイプ (例えば LOAD) が指定されない場合、LIST AT は現在定義されているすべてのブレークポイント (使用不可と使用可能の両方) をリストします。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST CALLS コマンド
活動ブロックの動的チェーンを表示します。ブロック構造のない言語では、これは CALL チェーンです。z/OS バッチおよび TSO では、LIST CALLS により、
プロセスで活動状態にあるすべてのエンクレーブの呼び出しチェーンがリストされます。
使用上の注意
- 言語間通信 (ILC) を使用しているプログラムの場合、以前のエンクレーブからのルーチンが
リストされるのは、ルーチンが現在のエンクレーブでアクティブになっている言語で作成されている場合のみです。
- エンクレーブを system() 関数で
作成してある場合、親エンクレーブ内のコンパイル単位はリストされません。
- R13、R14、および R15 に対する標準リンケージ規則に従わないプログラムをデバッグした場合、LIST CALLS コマンドの出力が誤っていたり不完全なことがあります。
- 逆アセンブルされたプログラムのデバッグ中に、次のいずれかの状態が起こります。
- レジスターの保存域が作成されない。
- レジスターが他の保存域へチェーニングされない。
呼び出しチェーン内のいくつかのプログラムまたは CSECT が表示されない。
- LIST CALLS コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
活動ブロックの現行の動的チェーンを表示します。
LIST CALLS;
LIST CONTAINER コマンド
コンテナーの内容を表示します。
- channel_name
- コンテナーを見つけるために Debug Tool が検索するチャネルの名前。チャネル名を指定しないと、Debug Tool は現行チャネルを検索します。
- container_name
- コンテナーの名前。
- 索引 (index)
- 表示するコンテナー内の単一バイトの位置を示す、10 進値または 16 進値。
- sub_string_start
- 表示する一連のバイトの開始位置を示す、10 進値または 16 進値。
- sub_string_end
- 表示する一連のバイトの終了位置を示す、10 進値または 16 進値。
- sub_string_length
- 表示するバイト数を示す、10 進値または 16 進値。
- XML
- 指定した領域に完全な XML 1.0 または 1.1 文書が含まれていることを示します。指定した領域は、z/OS XML パーサーに渡されて処理されます。パーサーが構文エラーを検出した場合は、Debug Tool ログにエラー・データが表示されます。そうでない場合は、Debug Tool ログにフォーマット済みの XML 文書が表示されます。
- EBCDIC
- 指定した領域に EBCDIC 文字が含まれていることを示します。
- ASCII
- 指定した領域に ASCII 文字が含まれていることを示します。
使用上の注意
- LIST CONTAINER コマンドは、XML オプションを除いてリモート・デバッグ・モードで使用できます。
- PL/I、COBOL、アセンブラー、および逆アセンブリーでは、名前が大/小文字混合であるか大/小文字の区別がある場合には、その名前を引用符 (") またはアポストロフィ (') で囲む必要があります。
- C および C++ では、名前は、引用符 (") で囲まれていなくても、常に大/小文字の区別があるものとして扱われます。
- XML は、z/OS バージョン
1.8 以降で実行している場合にのみサポートされます。
- XML を指定したが、EBCDIC も ASCII も指定しなかった場合、Debug Tool は XML 文書の適切なエンコード方式を検出しようとします。
- XML 文書内の一部の情報 (例えば DTD 指定の大半と一部の空白) が、z/OS XML パーサーから Debug Tool に返されなかったためにリストされない場合があります。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST CURSOR コマンド (フルスクリーン・モード)
変数、構造、および配列を記述するためのカーソル制御方式を提供します。これは、PF キーに割り当てられた場合に最も役に立ちます。
使用上の注意
- カーソル・ポインティングを使用するには、コマンド行で LIST CURSOR コマンドを入力してから
ソース・ウィンドウ内の変数にカーソルを移動し、その後で Enter を押すか、または PF キーに LIST CURSOR コマンドを
割り当て、カーソルを移動してから PF キーを押します。
- カーソル位置によって位置指定された変数に LIST CURSOR コマンドを使用する場合、その変数の名前およびその完全修飾は、ソース・リスト内で複数行にまたがって分割することはできません。
- PLAYBACK ENABLE コマンドの DATA オプションが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に LIST CURSOR コマンドを使用することができます。
- 最適化 COBOL プログラムでは、LIST CURSOR コマンドを使用して最適化プログラムによって廃棄された変数の値を表示できません。
例
- 変数の値を現行カーソル位置に表示します。
LIST CURSOR
- COBOL プログラムに、以下の形式のステートメントがあるとします。
MOVE a TO b
OF c
その修飾の部分 (OF c) が次の行にあるため、変数 b
に LIST CURSOR を使用することはできません。
LIST DTCN または CADP コマンド
DISABLE CADP または DISABLE DTCN コマンドにより無効にされたプログラムおよびコンパイル単位をリストします。
- DTCN
- DISABLE DTCN コマンドにより無効にされたプログラムをリストします。
- CADP
- DISABLE CADP コマンドにより無効にされたプログラムおよびコンパイル単位をリストします。
使用上の注意
LIST DTCN または LIST CADP コマンドは、リモート・デバッグ・モードで使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST 式コマンド
式の値を表示します。

- TITLED
- 各式をその値とともにリストに表示します。PL/I の場合のデフォルトになっています。C および C++ では、これは左辺値 の式のデフォルトです。COBOL では、単一の定数のみで構成される式を除いて デフォルトです。アセンブラー、逆アセンブリー、
および非言語環境プログラムの COBOL の場合、これは Debug Tool アセンブラー代入ステートメントの受け取り側として有効な式のデフォルトです。
キーワードなしで TITLED を指定すると、現在修飾されているブロック内のすべての変数がリストされます。
アスタリスク (*) を使用して TITLED を指定し、C、C++、または COBOL プログラムをデバッグする場合、
現在修飾されているコンパイル単位内のすべての変数がリストされます。
COBOL プログラムをデバッグする場合は、TITLED で次の追加オプションを使用できます。
- FS
- 現在修飾されているコンパイル単位内の COBOL File Section で定義されているすべての変数をリストします。
- WSS
- 現在修飾されているコンパイル単位内の COBOL Working-Storage Section で定義されているすべての変数をリストします。
- LS
- 現在修飾されているコンパイル単位内の COBOL Linkage Section で定義されているすべての変数をリストします。
- LOS
- 現在修飾されているコンパイル単位内の COBOL Local-Storage Section で定義されているすべての変数をリストします。
- * (C、C++、および COBOL)
- 現在修飾されているコンパイル単位内のすべての変数をリストします。
- UNTITLED
- 式を表示せずに式の値のみをリストします。C および C++ では、これは 左辺値でない 式のデフォルトです。COBOL では、これは単一の定数のみで構成されている式のデフォルトです。アセンブラー、逆アセンブリー、
および非言語環境プログラム の COBOL の場合、これは Debug Tool アセンブラー代入ステートメントの受け取り側として無効な式のデフォルトです。 LIST コマンドでは、現行のプログラム言語によっては、式に、
引用符 (") またはアポストロフィ (') で囲まれた文字ストリングが含まれる場合もあります。
C および COBOL では、括弧 () を含む式は、LIST コマンドによって
使用される場合には、さらに別の括弧で囲む必要があります。例えば、LIST ((x + y) / z); となります。
COBOL では、式は参照が後に続く GROUP キーワードである場合があります。これが指定されると、GROUP キーワードは、その参照を
基本項目であるかのように表示します。GROUP が基本項目について指定された場合には、なんの影響も及ぼしません。GROUP キーワードのオペランド
は、LIST TITLED GROUP y; の例に示すように、参照にしかなり得ません (式は許可されません)。
- expression
- 非言語環境プログラム の COBOL を除く、現行のプログラム言語で有効な式。
- 'expression'
- アポストロフィ (') で囲まれた、有効な非言語環境プログラム の COBOL 式。
使用上の注意
- LIST TITLED を FS、WSS、LS、または LOS パラメーターとともに使用する場合は、言語環境プログラム APAR PK12834 用の PTF を z/OS バージョン 1 リリース 6 およびバージョン 1 リリース 7 にインストールする必要があります。
- COBOL プログラムでは、LIST TITLED コマンドで FS、WSS、LS、または LOS という名前の変数を使用する場合は、変数の名前を括弧で囲む必要があります。
例えば、コマンド LIST TITLED (FS) は変数 FS をリストします。
コマンド LIST TITLED FS は、File Section 内の変数をリストします。
- Debug Tool では多くのコマンドを省略できます。これによって、LIST コマンドを 1 文字の式と併用すると予期しない結果を
招く可能性があります。例えば、LIST A は LIST AT コマンドと
解釈され、すべてのブレークポイントがリストされます。しかし、プログラムの中で A というラベルの付いた
変数の値を表示したかった場合には、LIST (A) というように
括弧を使用する必要があります。
- LIST TITLED * が指定された場合にコンパイル単位が大きいと、パフォーマンスが低下します。
- COBOL の場合、LIST TITLED * が指定されていて、コンパイル単位が
大きい場合、out of storage (ストレージ不足) エラー・メッセージを
受け取る場合があります。
- COBOL では LIST コマンドは、条件名、ファイル名、または式を参照できます。
- 最適化 COBOL プログラムでは、LIST コマンドは最適化プログラムによって廃棄された変数を参照できません。
- PL/I コンパイル単位の中でパラメーターなしの LIST TITLED を
使用すると、配列の最初のエレメントのみがリストされます。配列全体のリストが必要な場合は、LIST を使用
して、配列名を指定します (すなわち、配列の名前が array である場合
は、LIST array と指定します)。
- 宣言されたデータ型で表示できない文字データが文字変数に含まれていると、Debug Tool は、そのデータを特殊文字で表示します。「Debug Tool ユーザーズ・ガイド」のトピック『宣言されたデータ型で表示できない文字を Debug Tool が処理する方法』に、この状態で Debug Tool が行う内容が記載されています。そのデータを 16 進で表示する場合は、2 倍のバイト数が必要になります。表示できる最大バイト数は 65,535 です。
- PLAYBACK ENABLE コマンドの DATA オプションが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に LIST expression コマンドを使用することができます。
- スカラー項目を表示する場合、LIST で表示できる最大長は 65,535 バイトです。
- プログラムが Enterprise PL/I または Enterprise COBOL でコンパイルされている場合は、ソース・ウィンドウの接頭部域で L 接頭部コマンドを入力して、その行の変数の値を表示することができます。
例
- 変数 size および r の値と式 c + r を、それぞれの名前とともに表示します。
LIST TITLED (size, r, c + r);
- COBOL 参照を基本項目であるかのように表示します。現行のプログラム言語の設定は COBOL です。
LIST (GROUP x OF z(1,2), GROUP a, w);
- Debug Tool 変数 %ADDRESS の値を表示します。
LIST %ADDRESS;
- 逆アセンブル・ビューで、レジスター 1 (R1) の値を表示します。
これは、Debug Tool 変数 %R1 の値です。
LIST R1 ;
- COBOL では、File Section に定義されている変数の名前と値を表示します。
LIST TITLED FS;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
L 接頭部コマンド (フルスクリーン・モード)
L 接頭部コマンドは、ソース・ウィンドウの接頭部域で入力され、その行の変数の値をログ・ウィンドウに表示します。
- integer
- 行における変数の位置を、左を始点として指定します。行の最初の変数は位置 1、行の 2 番目の変数は位置 2 となり、変数がなくなるまでこのパターンを繰り返します。ある変数が同じ行に複数回出現する場合は、変数の最初のインスタンスにのみ位置番号が割り当てられます。整数を 1 つも指定しない場合は、行のすべての変数の値が表示されます。
使用上の注意
- L 接頭部コマンドは、有効なステートメントがある行にのみ入力できます。
- 複数の行に対して L 接頭部コマンドを入力することができます。
- L 接頭部コマンドを使用するには、ユーザー・プログラムを次のコンパイラーでコンパイルしておく必要があります。
- Enterprise COBOL
- Enterprise PL/I for z/OS バージョン 3.6 または 3.7 (APAR PK70606 用の PTF を適用済み)、またはそれ以降
- 現在アクティブでないブロック内の行には、L 接頭部コマンドを使用できません。
例
下記の例では次のコード行を使用します。
...
293 move 0 to c; move 0 to b; move 0 to IND; move b to a;
...
319 if a + b < b + c
320 then move ind to c;
321 end-if;
...
- 行 293 の IND の値を表示するには、行 293 の接頭部域で L3 コマンドを入力します。
- 行 319 の c の値を表示するには、行 319 の接頭部域で L3 コマンドを入力します。c の位置は 4 ではありません。これは、b が < 演算子の左側で最初に検出されたときの 1 回しかカウントされないためです。
< 演算子の右側にある 2 番目の b には、位置番号が割り当てられません。
- 行 293 のすべての変数の値を表示するには、行 293 の接頭部域に L コマンドを入力します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST FREQUENCY コマンド
ステートメントの実行回数をリストします。
- *
- 現在修飾されているコンパイル単位のすべてのステートメントの頻度をリスト
します。現在、修飾を利用できない AT TERMINATION ブレークポイントで実行中の場合、終了するエンクレーブの中のコンパイル単位のステートメントで、頻度データが
あるステートメントすべての頻度をリストします。
- LINES
- 頻度カウントの後のソース行を表示します。
- STATEMENT
- LINES と同じです。
使用上の注意
- 逆アセンブル表示では、LIST FREQUENCY および LIST FREQUENCY * はサポートされません。
- 記録されたステートメントを PLAYBACK コマンドを使用して再生する場合、頻度カウントは更新されません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST LAST コマンド
ヒストリー・テーブル内の最新の記入項目のリストを表示します。
- integer
- 直前に処理されたブレークポイントおよび条件の数を表示するよう指定します。
- HISTORY
- 処理されたすべてのブレークポイントおよび条件を表示します。
- LINES
- 処理されたステートメントまたは行のブレークポイントを表示します。LINES は STATEMENTS と同等です。
- PATHS
- 処理されたパス・ブレークポイントを表示します。
- STATEMENTS
- LINES と同等です。
使用上の注意
- LAST キーワードによって、LIST コマンドを読み取り可能にできます。これは、機能を実行しません。
- 逆アセンブル表示では、LIST LAST はサポートされません。
例
- ヒストリー・テーブル内の処理されたすべてのパス・ブレークポイントを表示します。
LIST PATHS;
- Debug Tool が制御を得た過去 5 回 (最新のものから) のすべてのプログラム・ブレークポイント
および条件を表示します。
LIST LAST 5 HISTORY;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST LINE NUMBERS コマンド
LIST STATEMENT NUMBERS と同じです。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST LINES コマンド
LIST STATEMENTS と同じです。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST MONITOR コマンド
現行の MONITOR コマンド・セットの全メンバーまたは選択されたメンバー、および中断状態にあるすべての MONITOR LOCAL コマンドをリストします。
- integer
- MONITOR コマンドを識別する符号なし整数。2 つの整数が指定された場合、1 番目の整数は 2 番目の整数より大か等しくなることはできません。これを省略した場合は、すべての MONITOR コマンドが表示されます。
使用上の注意
- モニター・ウィンドウの接頭部域に LIST と入力すると、選択した行のモニター・コマンドをリストできます。
- 現行のプログラム言語の設定が COBOL の場合、ハイフン (-) の前後にはブランクがなければなりません。ブランクは、C ではオプションです。
- integer を指定しない場合は、アクティブ・モニターおよび中断状態にあるローカル・モニターの両方がリストされます。
例
現在モニターされている 5 番目から 7 番目のコマンドをリストします。
LIST MONITOR 5 - 7;
LIST NAMES コマンド
変数、プログラム、または Debug Tool プロシージャーの名前をリストします。キーワードを指定しないで LIST NAMES が出されると、現行のプログラム言語
で参照可能であり、かつ、現在修飾されているブロックから参照することが
できる、すべてのプログラム変数およびセッション変数の名前が表示されます。名前のサブセットは、一致するパターンを与えることによって指定することができます。
- pattern
- 検索されるパターン。文字ストリング定数については、現行のプログラム言語
の構文に従います。パターンの長さは、引用符 (") またはアポストロフィ (') を除き、128 バイトを超えてはなりません。
DBCS 設定が ON であれば、パターンは DBCS 文字を含むことができます。DBCS シフト・コードは、パターン内では重要な文字とは見なされません。パターン内では、SBCS または DBCS アスタリスクは、ゼロのストリング、もしくは無意味な SBCS または DBCS
文字ストリングを表します。パターンにはアスタリスクを 8 つまで入れることができますが、隣接するアスタリスクは単一のアスタリスク
と同等です。
可能なストリングの例は、次のとおりです。
| C |
アセンブラー、逆アセンブリー、および非言語環境プログラム の COBOL |
PL/I |
|
"ABC"
|
"A5"
|
'MY'
|
|
|
'A5'
|
|
パターンのマッチングでは、DBCS 以外では大文字と小文字は区別されません。パターンおよび可能性のある名前の両者を、シフト・コードは別として、大文字にしておくと効果があります。ただし、現行のプログラム言語が C の場合は例外となります。現行のプログラム言語の設定が C の場合は、パターンの中の文字は正しい文字セットを使用する必要があります。
- BLOCK
- 1 つ以上の指定されたブロック内で定義された変数名を表示します。
- CUS
- コンパイル単位名を表示します。CUS は PROGRAMS と同等です。
- PROCEDURES
- Debug Tool プロシージャー名を表示します。
- PROGRAMS
- CUS と同等です。
- TEST
- Debug Tool のセッション変数の名前を表示します。
使用上の注意
- LIST NAMES CUS は、コンパイル単位名に適用します。
- LIST NAMES TEST は、現行のプログラム言語での参照が
可能なセッション変数名のみを示します。
- オプションを指定しない LIST NAMES の出力は、そのときの修飾の仕方および
そのときのプログラム言語の設定の両方によって変わってきます。現行のプログラム言語が現行の修飾のときのプログラム言語と異なる場合、コマンドの出力は、現行の
プログラム言語で参照可能なセッション変数名のみを表します。
- 構造の場合には、そのパターンが完全名かどうかがテストされます。したがって、"B" は "C OF B OF A" (COBOL) の完全名とは違う名前と見なされます。
- PLAYBACK ENABLE コマンドの DATA オプションが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に LIST NAMES コマンドを使用することができます。
- 最適化 COBOL プログラムでは、LIST NAMES コマンドは、最適化プログラムによって廃棄された変数を表示しません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST ON (PL/I) コマンド
指定した PL/I 条件に対して現在定義されている処置 (ある場合) をリストします。
- pli_condition
- 有効な PL/I 条件指定を行います。これを省略すると、現在定義されている ON コマンド処置のすべてを
リストします。
使用上の注意
- LIST ON コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
ON ZERODIVIDE コマンドに対する処置をリストします。
LIST ON ZERODIVIDE;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST PROCEDURES コマンド
指定された Debug Tool PROCEDURE 定義に含まれるコマンドをリストします。
- name
- 有効な Debug Tool プロシージャー名を指定します。プロシージャー名が指定されない場合、現在実行中のプロシージャーに含まれるコマンドが表示されます。現在実行中のプロシージャーがない場合、エラー・メッセージが出されます。
使用上の注意
例
LIST REGISTERS コマンド
現在のレジスター内容を表示します。
- REGISTERS
- 汎用レジスター (%GPRn) を表示します。
このコマンドは、実行が中断された CU 以外のアセンブラーまたは逆アセンブル CU が使用可能な場合、%Rn シンボルの値も表示します。
- 32BIT
- 32 ビット 10 進汎用レジスター (%GPRn) を表示します。
- 64BIT
- 64 ビット 10 進汎用レジスター (%GPRGn) を表示します。
- LONG
- 長精度浮動小数点レジスターの 10 進値を表示します。
- SHORT
- 短精度浮動小数点レジスターの 10 進値を表示します。
- FLOATING
- 長精度浮動小数点レジスターを表示します。
使用上の注意
64 ビット命令をサポートしないハードウェア上でプログラムを実行中の場合、または 64 ビット汎用レジスターが使用不可である場所でプログラムが中断されている場合は、32 ビット汎用レジスターのみが表示されます。
例
- プログラム割り込みが発生した位置で汎用レジスターを表示します。
LIST REGISTERS;
- 浮動小数点レジスターを表示します。
LIST FLOATING REGISTERS;
LIST STATEMENT NUMBERS コマンド
AT LINE または AT STATEMENT ブレークポイントとして有効な位置である、すべてのステートメントまたは行番号をリストします。
- NUMBERS
- STATEMENT ブレークポイントの設定に使用できるステートメント番号を表示します。ただし、コンパイル時にステートメント・フックを生成するコンパイル・オプションを
使用していることが前提となります。このリストは、GOTO コマンドにも活用できますが、リストされた
すべてのステートメント番号に GOTO が可能というわけではありません。
- block_spec
- 有効なブロック指定。このオペランドは、指定されたブロック内のすべてのステートメントまたは行番号をリストします。
- cu_spec
- 有効なコンパイル単位の指定。C プログラムでは、cu_spec は、最初の関数定義の前に指定のコンパイル単位内で定義されたステートメント番号のリストに使用することができます。
- statement_id_range
- ハイフン (-) で分けられた、ステートメント ID の有効範囲。
使用上の注意
- 逆アセンブル表示では、LIST STATEMENT NUMBERS はサポートされません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST STATEMENTS コマンド
ファイルから 1 つ以上のステートメントもしくは行をリストします。これは、基本的には、ソース・リストまたはソース・ファイルの一部を行モードで表示する場合に使用されますが、ソース・リストまたはソース・ファイルの一部をフルスクリーン・モードでログにコピーする場合にも使用することができます。
使用上の注意
- 指定された行は、広域行が切り捨てられることを
除き、フルスクリーン・ソース・ウィンドウでの表示と同じ形式で表示されます。
- 継続ステートメントが完全に表示されるようにするには、行番号の範囲を指定しなければならない
場合があります。
- このコマンドを、LIST LAST STATEMENTS コマンドと混同しないでください。
- 逆アセンブル表示では、LIST STATEMENTS はサポートされません。
例
- 現在修飾されているコンパイル単位に関連付けられているソース・ファイル内の行 25 から行 30 をリストします。
LIST LINES 25 - 30;
- 現行のプログラム・リスト・ファイルからステートメント 100 をリストします。
LIST STATEMENT 100;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LIST STORAGE コマンド
特定のアドレスでのストレージの内容を、16 進形式または XML 形式で表示します。
- address
- リストするストレージの開始アドレス。
- reference
- ストレージ・ロケーションをリストする変数。
アセンブラーまたは逆アセンブリーでは、このオペランドがストレージ・ロケーションを示すアセンブラー式として指定される場合があります。アセンブラー式が暗黙の長さを持たない場合 (例えば R3->+10)、integer オペランドを使用して、表示するバイト数を指定しなければなりません。
- 'reference'
- ストレージ・ロケーションをリストする非言語環境プログラムの COBOL 変数。 非言語環境プログラム の COBOL 参照は、アポストロフィ (') で囲む必要があります。
- offset
- 参照のアドレス、またはユーザーが指定したアドレスが指すメモリー位置からの開始オフセットを示すバイト数を 10 進数または 16 進数で
表したもの。
offset は、負の数値にすることができます。
offset が 16 進定数の場合は、address のときと同じ構文規則に従う必要があります。デフォルトは 0 です。
- length
- 表示されるストレージのバイト数 (10 進数)。
デフォルトは 16 バイトです。
length は整数でなければなりません。
- XML
- 指定した領域に完全な XML 1.0 または 1.1 文書が含まれていることを示します。指定した領域は、z/OS XML パーサーに渡されて処理されます。パーサーが構文エラーを検出した場合は、Debug Tool ログにエラー・データが表示されます。そうでない場合は、Debug Tool ログ・ファイルにフォーマット済みの XML 文書が表示されます。
- EBCDIC
- 指定した領域に EBCDIC 文字が含まれていることを示します。
- ASCII
- 指定した領域に ASCII 文字が含まれていることを示します。
使用上の注意
- C および C++ では、reference がポインターの場合、Debug Tool はそのポインターが指定するアドレスにある内容を表示します。
- Debug Tool を使用する場合、コマンド行で LIST STORAGE コマンド
を入力し、ソース・ウィンドウの変数にカーソルを移動してから Enter キー
を押すか、または、カーソルを移動してから LIST STORAGE コマンド
に割り当ててある PF キーを押すかの方法でカーソル指示ができます。
- LIST STORAGE コマンドを、Debug Tool で、カーソル位置によって
位置指定された変数について使用する場合、その変数の名前は、ソース・リスト内で行をまたがって分かれていてはなりません。
- 参照された変数が %GPR1 などの汎用レジスター (GPR)
である場合、その結果は、有効になっているプログラム言語によって、以下のようになります。
- アセンブラーおよび逆アセンブリーを除くすべての言語の場合、Debug Tool
は、参照された GPR に入っているアドレスにあるストレージを表示します。
- アセンブラーおよび逆アセンブリーの場合、参照されたレジスターに入っているアドレス
にあるストレージを表示するよう Debug Tool に指示するには、間接表記
(%GPR1->) を使用する必要があります。
- LIST STORAGE にオペランドが指定されない場合、コマンドは、カーソル移動に影響されます。
- 記録されたステートメントを PLAYBACK コマンドを使用して再生している場合、LIST STORAGE コマンドは、PLAYBACK START コマンドを入力した時点でストレージの内容を表示します。
- 最適化 COBOL プログラムでは、LIST STORAGE は最適化プログラムによって廃棄された変数を表示できません。
- XML は、z/OS バージョン
1.8 以降で実行している場合にのみサポートされます。
- XML を指定したが、EBCDIC も ASCII も指定しなかった場合、Debug Tool は XML 文書の適切なエンコード方式を検出しようとします。
- XML 文書内の一部の情報 (例えば DTD 指定の大半と一部の空白) が、z/OS XML パーサーから Debug Tool に返されなかったためにリストされない場合があります。
- address に 8 桁を超える有効数字を指定するか、または
reference が 64 ビットのアドレス可能ストレージを参照している場合、Debug Tool は
ストレージ・ロケーションが 64 ビットのアドレス可能ストレージであると見なします。それ以外の場合、Debug Tool はストレージ・ロケーションが 31 ビットのアドレス可能ストレージであると見なします。
例
- 変数 table のアドレスで開始する記憶域の最初の 64 バイトを表示します。
LIST STORAGE (table, 64);
- ポインター table(1) によって指定されたアドレスの記憶域の 16 バイトを表示します。
LIST STORAGE (table(1));
- 記憶位置 20CD0 から 20CDF に入っている 16 バイトを表示します。現行のプログラム言語の設定は COBOL です。
LIST STORAGE (H'20CD0');
- 記憶位置 20CD0 から 20CDF に入っている 16 バイトを表示します。現行のプログラム言語の設定は PL/I です。
LIST STORAGE ('20CD0'PX);
- 逆アセンブル表示で、レジスター R13 によって指定されたアドレスの記憶域を表示します。
LIST STORAGE (R13->);
- 変数 MYVAR のオフセット 2 から始まる 10 文字を表示します。
MYVAR は、CHAR (20) として宣言されます。
LIST STORAGE (MYVAR, 2, 10);
- アドレス '20ACD0'PX のオフセット 10 から始まる 20 バイトを表示します。
現行のプログラム言語の設定は PL/I です。
LIST STORAGE ('20ACD0'PX, 10, 20);
- アドレス '20ACD0'PX のオフセット -5 から始まる 10 バイトを表示します。
現行のプログラム言語の設定は PL/I です。
LIST STORAGE ('20ACD0'PX, -5, 10);
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LOAD コマンド
指定されたモジュールをデバッグのためにロードするように指定します。
LOAD コマンドでは、プリロード済みのロード・モジュールをデバッグできます。
言語環境プログラムで作業している場合は、ロード・モジュールのロードにエンクレーブ・レベルのロード・サービスが使用されます。
現在のエンクレーブが終了するか、またはこのロード・モジュールに対して CLEAR LOAD コマンドが
入力されるまで、ロード・モジュールは活動状態のままです。
言語環境プログラムで作業していない場合、デバッグ中のタスクが終了するか、
またはこのロード・モジュールに対して CLEAR LOAD コマンドが入力されるまで、
ロード・モジュールは活動状態のままです。
CICS プログラムをデバッグする場合、
ロードは EXEC CICS LOAD によって行われます。
他のすべてのプログラムでは、ロードは MVS LOAD サービスによって行われます。
- module_name
- Debug Tool によってロードされた 1 つ以上のロード・モジュールの名前。
- LE
- 言語環境プログラム・エンクレーブ・レベルのロード・サービスを使用して、ロード・モジュールをロードします。
現在のエンクレーブが終了するか、またはこのロード・モジュールに対して CLEAR LOAD コマンドが
入力されるまで、ロード・モジュールは活動状態のままです。
- NONLE
- 言語環境プログラム以外のサービスを使用して、ロード・モジュールをロードします。
デバッグ中のタスクが終了するか、またはこのロード・モジュールに対して CLEAR LOAD コマンドが
入力されるまで、ロード・モジュールは活動状態のままです。
CICS プログラムでは、ロード・モジュールは EXEC CICS LOAD を使用してロードされます。
他のすべてのプログラムでは、ロード・モジュールは MVS LOAD サービスを使用してロードされます。
使用上の注意
- このコマンドは、リモート・デバッグ・モードで使用できます。
- プログラムが COBOL でない場合、ロードしたロード・モジュール内のプログラムまたは CSECT に対して QUALIFY CU コマンドを入力できます。
- モジュール内のプログラムまたは CSECTS にブレークポイントを設定し、同じロード・モジュールが再ロードされると、
ロード・モジュールの位置が変更されるため、ブレークポイントが機能しないことがあります。
- デバッグ対象のモジュールが RESIDENT であるか、または Debug Tool の始動前にロードされた場合、LOAD コマンドを使用して
モジュールを言語環境プログラムに認識させることができます。
- このコマンドを使用して、DLL をロードすることはできません。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
LOADDEBUGDATA コマンド
コンパイル単位 (CU) がアセンブラー CU または非言語環境プログラム COBOL CU であることを指定し、デフォルトのデータ・セット名 userid.EQALANGX(cu_name) からデバッグ・データをロードします。
デバッグ・データが異なるデータ・セットに保管されている場合、SET SOURCE または SET DEFAULT LISTINGS コマンド、あるいは EQADEBUG DD ステートメントを使用してそのデータ・セット名を指定できます。リモート・デバッグ・モードでは、EQADEBUG DD ステートメントを使用してデータ・セット名
を指定するか、またはリモート・デバッガーにデータ・セット名を要求するプロンプトを出させるようにすることができます。
EQALANGX プログラムを使用するか、またはアセンブラー・プログラムをデバッグ
している場合にはプログラムを Debug Tool Utilities でアセンブルすることにより、
必要なデバッグ・データを生成できます。
これらの 2 つの方法については、「Debug Tool ユーザーズ・ガイド」で説明されています。
- load_module_name
- 指定したコンパイル単位 (cu_name) を含むロード・モジュールの名前。対応するロード・モジュールが Debug Tool に認識されている場合は、指定したコンパイル単位は、指定したロード・モジュール内の逆アセンブリー・コンパイル単位でなければなりません。このロード・モジュールが Debug Tool に認識されていない場合、Debug Tool は、指定したコンパイル単位を含む指定した名前のロード・モジュールがロードされるまで、LOADDEBUGDATA コマンドを据え置きます。
load_module_name を指定しない場合、Debug Tool は、指定の名前のコンパイル単位がどのロード・モジュールで見つかった場合でも、そのコンパイル単位すべてに LOADDEBUGDATA コマンドを適用します。
- cu_name
- アセンブラーまたは非言語環境プログラム の COBOL のコンパイル単位の名前。 このコンパイル単位が現在 Debug Tool に認識されている場合には、このコンパイル単位は逆アセンブリー・コンパイル単位でなければなりません。現在 Debug Tool に既知でない場合、指定された名前による逆アセンブリー・コンパイル単位が
Debug Tool に既知になるまで、LOADDEBUGDATA コマンドは据え置かれます。
使用上の注意
- SET SAVE コマンドを使用してブレークポイントまたはモニター指定を
保存する場合、または RESTORE コマンドを使用してブレークポイントまたはモニター指定を
復元する場合、デバッグ・データのロード元であるデータ・セットのデータ・セット名を含むすべての LDD 設定が保存および復元されます。
- CICS の
場合のみ: フルスクリーン・モードのデバッグ・セッションについて DTCN プロファイルが活動状態にある
場合、DTCN プロファイルが削除されるか端末セッションが終了するまで、Debug Tool は、
デバッグ・データのロード元であるデータ・セットのデータ・セット名など、すべての LDD 設定を保持します。
- このコマンドは、リモート・デバッグ・モードでアセンブラー CU (非言語環境プログラム の COBOL CU を除く) に対して使用できます。
- Debug Tool が CU に対して正常に LOADDEBUGDATA コマンド
を処理した後、その CU がいったん削除されて、後で現れた場合、最初に使用されたのと同じ
EQALANGX データ・セットを使用して、暗黙の LDD コマンドがその CU に対して実行されます。
- 同じコンパイル単位に対して LDD コマンドを複数回入力することはできません。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
MEMORY コマンド
メモリー・ウィンドウに表示するメモリーの開始アドレスとして使用するアドレスを指定します。
指定したアドレスが無効な場合、Debug Tool はエラー・メッセージを表示します。
MEMORY コマンドを保存および復元することはできません。
- address
- メモリー・ウィンドウに表示するメモリーの開始アドレスとして使用するアドレス。
- reference
- メモリー・ウィンドウに表示するメモリーの開始アドレスとして使用するメモリー内のロケーションを持つ変数。
- 'reference'
- メモリー・ウィンドウに表示するメモリーの開始アドレスとして使用するメモリー内のロケーションを持つ非言語環境プログラム の COBOL 変数。
- simple_expression
- 正または負の 16 進数変位または整数変位を持つアドレス。結果の値は、メモリー・ウィンドウに表示するメモリーの開始アドレスです。
使用上の注意
- COBOL では、参照変更で変数を指定した場合は、指定した参照のロケーションではなく、その変数のストレージ・ロケーションが基底アドレスとして使用されます。
- address に 8 桁を超える有効数字を指定するか、または
reference が 64 ビットのアドレス可能ストレージを参照している場合、Debug Tool は
ストレージ・ロケーションが 64 ビットのアドレス可能ストレージであると見なします。それ以外の場合、Debug Tool はストレージ・ロケーションが 31 ビットのアドレス可能ストレージであると見なします。
- C および C++ では、reference がポインターの場合、Debug Tool はそのポインターが指定するアドレスにある内容を表示します。
例
この節で説明している内容に関して詳しくは、以降の節を参照してください。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- 「Debug Tool ユーザーズ・ガイド」の『Debug Tool セッション・パネル』
- 「Debug Tool ユーザーズ・ガイド」の『メモリー・ウィンドウとログ・ウィンドウの切り替え』
- 「Debug Tool ユーザーズ・ガイド」の『メモリー・ウィンドウの表示』
- 「Debug Tool ユーザーズ・ガイド」の『メモリー・ウィンドウでのメモリーの表示』
- 関連資料
- address
MONITOR コマンド
MONITOR コマンドを使用すると、コマンドを定義または再定義して、その出力をモニター・ウィンドウ (フルスクリーン・モード) またはログ・ファイル (バッチ・モード) に表示します。MONITOR コマンドと共に使用できるのは、次のコマンドのみです。
Debug Tool は、入力された最新の MONITOR コマンドのリストを維持します。入力された各コマンドに 1 から 99 までの番号が割り当てられます。またユーザーが番号を割り当てることもできます。この番号を使用して、再定義する MONITOR を Debug Tool に指示します。
- GLOBAL
- モニター定義がグローバルであることを指定します。すなわち、特定のコンパイル単位には関連付けられません。
- LOCAL
- モニター定義が特定のコンパイル単位に対してローカルであることを指定します。Debug Tool を使用する場合、指定の出力を表示するのは、現行の修飾が関連付けられた
コンパイル単位の中にある場合のみです。
- cu_spec
- 有効なコンパイル単位の指定。これは、モニター定義に関連付けられたコンパイル単位を指定します。
- integer
- 1 から 99 の範囲の整数。指定されたコマンドによって置き換えられるリスト内の
コマンド、およびモニターされたコマンドが評価される順序を示します。省略した場合、次のモニター整数が割り当てられます。エラー・メッセージは、最大数のモニター・コマンドが既に存在している場合に出されます。
- command
- 出力がモニター・ウィンドウまたはログ・ファイルに
表示される、DESCRIBE、LIST、Null、または QUERY コマンド。
- HEX
- 16 進形式で表示される変数の値を指定します。HEX
パラメーターには、MONITOR LIST expression コマンドまたは MONITOR n コマンドのみを指定できます。ここで、n は MONITOR リスト内の n 番目のコマンドで、LIST expression コマンドでなければなりません。
- DEFAULT
- 変数値を宣言されたデータ型で表示することを指定します。DEF
パラメーターには、MONITOR LIST expression コマンドまたは MONITOR n コマンドのみを指定できます。ここで、n は MONITOR リスト内の n 番目のコマンドで、LIST expression コマンドでなければなりません。
使用上の注意
- モニター・ウィンドウの接頭部域に HEX と入力すると 16 進数で、DEF と入力するとデフォルト表記で、
選択した行を表示できます。
- HEX および DEF 接頭部コマンドは、個別の構造エレメントまたは配列エレメントに関連付けられた接頭部域に入力したとき、その該当するエレメントでのみ動作します。
- モニター番号は、グローバル・モニター・コマンドまたはローカル・モニター・コマンドを識別します (また
はどちらも識別しません)。
- Debug Tool を使用する場合、モニター出力は、モニター番号順に表示されます。
- 番号が指定されてコマンドが省略された場合、モニター・ウィンドウ内のその番号に対応する
行に NULL コマンドが挿入されます。これによって、モニター番号を予約します。
- 指定できるモニター番号は、既存の最大モニター番号よりも大きいモニター番号です。
- モニターからコマンドを消去するには、CLEAR MONITOR コマンドを使用します。
- MONITOR コマンドは、最大で 1000 行の出力をモニター・ウィンドウに
表示します。
- 置き換えは、モニター番号によって識別されたコマンドが既に存在している場合にのみ行われます。
- SET AUTOMONITOR ON が有効な場合、Debug Tool はモニター・リスト内の最後のアクティブ項目の後に、表示されない項目を追加します。number を指定し、その番号が最後のアクティブ項目と等しいか、それより 1 つ大きい場合、Debug Tool は最後のアクティブ項目に新たな MONITOR コマンドを挿入し、1 つ大きい番号の項目を SET AUTOMONITOR ON に使用します。
- MONITOR LIST コマンドで
は、POPUP、TITLED、および UNTITLED オプションを
指定することはできません。
- MONITOR LIST コマンドを使用すると、単一参照 (また
は C lvalues) は、その値をもつ識別情報を表示します。これに対して、式およびリテラルはこれを行いません。
- GLOBAL および LOCAL キーワードもまた、式の評価の
デフォルト修飾に影響を及ぼします。GLOBAL は、デフォルト修飾がプログラム内の現行の実行地点で
あることを示します。LOCAL は、デフォルト修飾が指定されたコンパイル単位に
対するものであることを示します。
- コンパイル単位を含むエンクレーブが終了、またはコンパイル単位を含むロード・モジュールが削除されると、LOCAL モニターは中断されます。
関連するコンパイル単位が後で同じデバッグ・セッションに再び出現すると、LOCAL モニターが復元されます。ただし、その時点で元のモニター番号が使用されている場合があるため、モニターは常に同じモニター番号で復元されるわけではありません。
- PLAYBACK ENABLE コマンドの DATA オプションが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に MONITOR コマンドを使用することができます。
- MONITOR LIST コマンドを評価できるのは、現在有効であるプログラム言語が、その MONITOR LIST コマンドが実行されたときのものと同じである場合に限られます。
そのため、次の操作のいずれかによってプログラム言語が変更された場合、MONITOR LIST コマンドの評価は失敗し、メッセージが表示されます。
- 元のMONITOR コマンドが入力されたときに有効だったプログラム言語とは異なる言語で書かれたコンパイル単位での実行の中断。
- SET PROGRAMMING LANGUAGE コマンドの入力。
- SET QUALIFY コマンドの入力。
- LOADDEBUGDATA コマンドの入力。
- プログラムが Enterprise PL/I または Enterprise COBOL でコンパイルされている場合は、ソース・ウィンドウの接頭部域で M 接頭部コマンドを入力して、その行の変数をモニター・ウィンドウに追加することができます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
M 接頭部 (フルスクリーン・モード)
M 接頭部コマンドは、ソース・ウィンドウの接頭部域で入力され、変数(複数も可)をモニター・ウィンドウに追加します。
- integer
- 行における変数の位置を、左を始点として指定します。行の最初の変数は位置 1、行の 2 番目の変数は位置 2 となり、変数がなくなるまでこのパターンを繰り返します。ある変数が同じ行に複数回出現する場合は、変数の最初のインスタンスにのみ位置番号が割り当てられます。整数を 1 つも指定しない場合は、行のすべての変数がモニター・ウィンドウに追加されます。
使用上の注意
- M 接頭部コマンドは、有効なステートメントがある行にのみ入力できます。
- 複数の行に対して M 接頭部コマンドを入力することができます。
- M 接頭部コマンドを使用するには、ユーザー・プログラムを次のコンパイラーでコンパイルしておく必要があります。
- Enterprise COBOL
- Enterprise PL/I for z/OS バージョン 3.6 または 3.7 (APAR PK70606 用の PTF を適用済み)、またはそれ以降
- 現在アクティブでないブロック内の行には、M 接頭部コマンドを使用できません。
例
下記の例では次のコード行を使用します。
...
293 move 0 to c; move 0 to b; move 0 to IND; move b to a;
...
319 if a + b < b + c
320 then move ind to c;
321 end-if;
...
行 293 の変数 c をモニター・ウィンドウに追加するには、行 293 の接頭部域で M1 コマンドを入力します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
MOVE コマンド (COBOL)
MOVE コマンドは、データをある 1 つのストレージから別のストレージに転送します。キーワードを省略することはできません。
- reference
- 有効な Debug Tool COBOL 参照。
- literal
- 有効な COBOL リテラル。
使用上の注意
- 計算条件またはアテンション割り込みによって Debug Tool を呼び出した場合、変数の
値の設定に代入ステートメントを使用しても、期待した結果は得られない
可能性があります。これは、ステートメント境界での変数値とは反対に、ステートメント内の変数値のあいまいさによるものです。
- MOVE は、値を単一の受信先にのみ代入します。COBOL の場合とは
異なり、複数の受信先変数はサポートされません。
- COBOL の CORRESPONDING 句はサポートされません。
- MOVE では、日付ウィンドウ操作をサポートしていません。したがって、MOVE コマンドを使用してウィンドウ化日付フィールドの値を
拡張日付フィールドまたは非日付フィールドに代入することはできません。
- MOVE コマンドを使用して、ある拡張日付フィールドの値を異なる DATE
FORMAT 文節を持つ別の拡張日付フィールドに代入したり、あるいは、あるウィンドウ化日付フィールドの値を異なる DATE FORMAT 文節を持つ別の
ウィンドウ化日付フィールドに代入したりすることはできません。
- PLAYBACK ENABLE コマンドの DATA パラメーターが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に MOVE コマンドを使用することができます。MOVE コマンドの宛先は、プログラム変数ではなく、セッション変数でなければなりません。
- 最適化 COBOL プログラムのデバッグをする場合、MOVE コマンドを使用して値をプログラム変数に代入できるのは、最初に SET WARNING OFF コマンドを入力するときのみです。
- OPTIMIZE コンパイラー・オプションを使用してコンパイルされた COBOL プログラムをデバッグしている場合、最適化プログラムによって廃棄された変数を MOVE コマンドのどちらのオペランドにも使用できません。
- 各国語として定義された COBOL 変数が英字または英数字オペランドを指定した MOVE コマンドの受け取りフィールドとして使用される場合、各国語でないオペランドは、グループ項目を除き、移動が行われる前に Unicode に変換されます。MOVE ステートメントでの COBOL 変数の使用について詳しくは、「Enterprise COBOL for z/OS 言語解説書」を参照してください。
- N または NX 接頭部でのリテラルは常に各国語データとして扱われ、他の各国語データ項目またはグループ項目にのみ移動できます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
MOVE コマンドによって実行できる移動 (COBOL)
次の表に、Debug Tool MOVE コマンドで実行できる移動を
示します。
| ソース・フィールド |
受け取りフィールド |
| GR |
AL |
AN |
ED |
BI |
NE |
ANE |
NDI |
NNDI |
ID |
IF |
EF |
D1 |
| GROUP (GR) |
Y |
Y |
Y |
Y1 |
Y1 |
Y1 |
Y1 |
Y1 |
|
Y1 |
Y1 |
Y1 |
|
| ALPHABETIC (AL) |
Y |
Y |
|
|
|
|
|
Y |
|
|
|
|
|
| ALPHANUMERIC (AN)4、5 |
Y |
|
Y |
|
|
|
|
Y |
|
|
|
|
|
| EXTERNAL DECIMAL (ED)4、5 |
Y1 |
|
|
Y |
|
|
|
|
|
|
|
|
|
| BINARY (BI) |
Y1 |
|
|
|
Y |
|
|
|
|
|
|
|
|
| NUMERIC EDITED (NE) |
Y |
|
|
|
|
|
|
|
|
|
|
|
|
| ALPHANUMERIC EDITED (ANE) |
Y |
|
|
|
|
|
Y |
Y |
|
|
|
|
|
| FIGCON ZERO |
Y |
|
Y |
Y2 |
Y2 |
|
Y |
|
NU |
Y2 |
Y |
Y |
|
| FIGCON ZERO、SPACE、または QUOTE |
|
|
|
|
|
|
|
Y |
|
|
|
|
|
| SPACES (AL) |
Y |
Y |
Y |
|
|
|
Y |
|
|
|
|
|
|
| HIGH-VALUE、LOW-VALUE、QUOTES |
Y |
|
Y |
|
|
|
Y |
|
|
|
|
|
|
| NATIONAL DATA ITEM (NDI) |
Y1 |
|
|
|
|
|
|
Y |
|
|
|
|
|
| NATIONAL NUMERIC DATA ITEM (NNDI) |
|
|
|
|
|
|
|
|
NN |
|
|
|
|
| NUMERIC LITERAL |
Y1 |
|
|
Y |
Y |
|
|
|
NN |
Y |
Y |
Y |
|
| ALPHANUMERIC LITERAL |
Y |
Y |
Y |
|
|
Y1 |
Y |
Y |
|
|
|
|
|
| ALPHANUMERIC HEX LITERAL6 |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
|
|
Y |
Y |
Y |
|
| INTERNAL DECIMAL (ID)4、5 |
Y1 |
|
|
|
|
|
|
|
|
Y |
|
|
|
| FLOATING POINT LITERAL |
Y1 |
|
|
|
|
|
|
|
|
|
Y |
Y |
|
| INTERNAL FLOATING POINT (IF) |
Y1 |
|
|
|
|
|
|
|
|
|
Y |
Y |
|
| EXTERNAL FLOATING POINT (EF) |
Y1 |
|
|
|
|
|
|
|
|
|
Y |
Y3 |
|
| DBCS DATA ITEM (D1) |
|
|
|
|
|
|
|
|
|
|
|
|
Y |
| DBCS LITERAL |
|
|
|
|
|
|
|
|
|
|
|
|
Y |
| NATIONAL LITERAL (NL) |
Y |
|
|
|
|
|
|
Y |
|
|
|
|
|
| NATIONAL HEX LITERAL (NHL)7 |
Y1 |
|
|
|
|
|
|
Y |
|
|
|
|
|
注:
- 1
- 変換なしで移動 (AN から AN などのように)
- 2
- 数値移動
- 3
- 小数点に位置合わせして切り捨て (必要に応じて)
- 4
- MOVE では、日付ウィンドウ操作をサポートしていません。例えば、MOVE ステートメントを使用してウィンドウ化日付フィールドを拡張日付フィールド、または、非日付フィールドに移動することはできません。
- 5
- MOVE コマンドを使用してあるウィンドウ化日付フィールドを
異なる DATE FORMAT 文節を持つ別のウィンドウ化日付フィールドに
移動したり、またはある拡張日付フィールドを異なる DATE FORMAT 文節を持つ
別の拡張日付フィールドに移動することはできません。
- 6
- 16 進文字のみ有効です。引用符 (") またはアポストロフィ (') で区切られ、その前に X が付きます。
- 7
- 16 進文字のみ有効です。引用符 (") またはアポストロフィ (') で区切られ、その前に NX が付きます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
NAMES コマンド
NAMES コマンドは、必ず「Debug Tool ユーザーズ・ガイド」の『システム接頭部が付いた名前のユーザー・プログラムのデバッグ』の説明に従って使用してください。
NAMES DISPLAY コマンド
NAMES DISPLAY コマンドでは、現在の除外または包含対象のロード・モジュールまたはコンパイル単位すべての一覧を必要とすることを指定します。ALL パラメーターが無指定の場合、ユーザー・コマンドで除外した名前だけが、表示される一覧に現れます。Debug Tool がデフォルトで除外した名前は、表示されるこの一覧には含まれません。
- USER
- ユーザーの要求でその時点で除外 (NAMES EXCLUDE コマンドを使用して) されているロード・モジュールまたはコンパイル単位の一覧を必要とすることを指定します。
- ALL
- 現在の除外対象 (デフォルトで Debug Tool が除外するロード・モジュールまたはコンパイル単位を含む) のロード・モジュールまたはコンパイル単位すべての一覧を必要とすることを指定します。
- LOADMODS
- ロード・モジュール名一覧が必要であることを示します。
- CUS
- コンパイル単位名一覧が必要であることを示します。
- pattern
- ロード・モジュール名またはコンパイル単位名を指定します。あるいは、ロード・モジュール名またはコンパイル単位名の一部の後にアスタリスクを付加したストリングを引用符 (") またはアポストロフィ (')で囲んで指定することで、そのストリングで始まるすべてのロード・モジュールまたはコンパイル単位の一覧が必要であることを示します。
使用上の注意
このコマンドは、リモート・デバッグ・モードで使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
NAMES EXCLUDE コマンド
NAMES EXCLUDE コマンドを使用して、デバッグする必要がないロード・モジュールまたはコンパイル単位の名前を Debug Tool に示すことができます。これらがデータしか入っていないモジュールである場合、Debug Tool はそのモジュールを処理しません。これらに実行可能コードが含まれている場合、Debug Tool は場合によってそれらを処理することがあります。このような状況について詳しくは、「Debug Tool ユーザーズ・ガイド」の『大きなアプリケーションのデバッグの最適化』を参照してください。
- LOADMOD
- 指定したロード・モジュールをデバッグ対象にしたくないことを示します。
- CU
- 指定したコンパイル単位をデバッグ対象にしたくないことを示します。
- NOTEST
- デバッグ・データを使用してコンパイルしていないコンパイル単位をデバッグ対象にしたくないことを示します。
- pattern
- ロード・モジュール名またはコンパイル単位名を指定します。あるいは、ロード・モジュール名またはコンパイル単位名の一部の後にアスタリスクを付加したストリングを引用符 (") またはアポストロフィ (') で囲んで指定することで、指定したストリングで始まるすべてのロード・モジュールまたはコンパイル単位をデバッグしないことを示します。
使用上の注意
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
NAMES INCLUDE コマンド
NAMES INCLUDE コマンドを使用して、使用するプログラムがユーザーのロード・モジュールまたはコンパイル単位であって、システム・プログラムでないことを Debug Tool に示します。詳しくは、「Debug Tool ユーザーズ・ガイド」の『システム接頭部が付いた名前のユーザー・プログラムのデバッグ』を参照してください。
- LOADMOD
- 指定したロード・モジュールをデバッグ対象とすることを示します。
- CU
- 指定したコンパイル単位をデバッグ対象とすることを示します。
- name
- ロード・モジュール名またはコンパイル単位名を指定します。
使用上の注意
- このコマンドは、リモート・デバッグ・モードで使用できます。
- Debug Tool にとって既に認識済みのロード・モジュールまたはコンパイル単位に関して NAMES INCLUDE コマンドを使用できません。
- NAMES INCLUDE コマンドを使用して、初期ロード・モジュール、または初期ロード・モジュールに含まれるコンパイル単位をデバッグしたい旨、Debug Tool に示すことはできません。これを行いたい場合は、NAMES INCLUDE コマンド相当の EQAOPTS Debug Tool カスタマイズ・モジュールに制御ステートメントをコーディングする必要があります。
方法については、「Debug Tool ユーザーズ・ガイド」の『NAMES コマンドをインプリメントするための EQAOPTS の使用方法』を参照してください。
- NAMES INCLUDE コマンドを使用してシステム・コンポーネントをデバッグしないでください。このシステム・コンポーネントには、例えば、Debug Tool、言語環境プログラム、CICS、IMS、またはコンパイラーのランタイム・モジュールなどがあります。
これらのシステム・コンポーネントをデバッグしようとすると、予測不能な障害が発生する可能性があります。 このコマンドの使用対象は、Debug Tool がシステム・コンポーネントとして認識する接頭部が付いたユーザー・プログラムをデバッグする場合に限定してください。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
Null コマンド
Null コマンドは、コマンドを指定する場所に書き込まれる
セミコロンです。Null コマンドは、THEN 文節内で処置が行われない IF コマンド
などに使用されます。
例
array[x] > 0 の場合は何もせず、それ以外の場合は a に 1 を設定します。現行のプログラム言語の設定は C です。
if (array[x] > 0); else a = 1;
ON コマンド (PL/I)
ON コマンドによって、指定の PL/I 条件が発生したときに実行する
処置を設定します。このコマンドは AT OCCURRENCE と同等です。
- condition_name
- 有効な PL/I の CONDITION 条件名。
- file_reference
- 有効な PL/I ファイル定数またはファイル変数 (修飾可能)。
- command
- 有効な Debug Tool コマンド。
使用上の注意
- 特定の条件に関する PL/I の制約事項に従ってください。
- 指定の PL/I 条件に対する ON 処置は、次の状況になるまで有効です。
- 別の ON コマンドで、同じ条件に対する新規の処置が定義されるまで。すなわち、ブレークポイントが置換されるまで。
- CLEAR コマンドが ON 定義を除去するまで。
- ON コマンドは、アプリケーション・プログラム内で既存
の ON ユニットより先に出されます。ON ユニットは、Debug Tool が制御をその言語に戻してから処理されます。
- PL/I 条件定数の PL/I 省略語として認められるのは、次の場合です。
- ATTENTION または ATTN
- FIXEDOVERFLOW または FOFL
- OVERFLOW または OFL
- STRINGRANGE または STRG
- STRINGSIZE または STRZ
- SUBSCRIPTRANGE または SUBRG
- UNDEFINEDFILE([file_reference]) または UNDF([file_reference])
- UNDERFLOW または UFL
- ZERODIVIDE または ZDIV
- ON コマンドの推奨形が AT OCCURRENCE です。しかし、PLITEST および INSPECT の互換性を保つため、ON コマンドも認識され、処理されます。ON は、AT OCCURRENCE の同義語と見なしてください。ON コマンドが使用されたときは、AT OCCURRENCE コマンド
としてログに記録されます。
- ON コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- ゼロによる除算が検出された場合、メッセージを表示します。
ON ZERODIVIDE BEGIN;
LIST 'A zero divide has been detected';
END;
- 文字データを数値に変換する場合に誤りの文字を表示し、パッチします。
次のステートメントを含む PL/I プログラムを仮定します。
DECLARE i FIXED BINARY(31,0);
.
..
..
i = '1s3';
次の Debug Tool コマンドは、文字データを数値に変換するときに、エラーの文字を
表示し、それをパッチします。
ON CONVERSION
BEGIN;
LIST (%STATEMENT, ONCHAR);
ONCHAR = '0';
GO;
END;
'1s3' を 2 進数に変換することはできない
ので、CONVERSION が発生します。ON CONVERSION コマンドは、問題のあるステートメント番号と、問題のある文字 's' をリストします。データは、's' を 文字ゼロ 0 に置き換えてパッチされ、処理は継続します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
PANEL コマンド (フルスクリーン・モード)
PANEL コマンドは、特別のパネルを表示します。PANEL キーワードはオプションです。
PANEL コマンドは、コマンド・リスト内で使用できず、また、どの条件コマンドあるいはどのマルチウェイ・コマンドでも使用することができません。

- COLORS
- Debug Tool セッション・パネルの各フィールドの、カラー、強調表示、輝度を選択できるカラー選択パネルを表示します。
- LAYOUT
- Debug Tool セッション・パネルのウィンドウの構成を制御する
ウィンドウ・レイアウト選択パネルを表示します。
- RESET
- ウィンドウ・レイアウト・パネルを表示せずに、現行の構成のウィンドウの
相対サイズを復元します。構成 1 および 4 については、ウィンドウが 3 つに等分割されています。他の構成については、3 つのウィンドウが集まる点は、およそ画面の中央です。
- LISTINGS
- ソース識別パネルを表示して、ソース・ウィンドウに表示した
ソース・リストまたはソース・ファイルと、それらのプログラム・ユニット
との関連を示します。LISTINGS は SOURCES と同等です。
Debug Tool には、プログラムと関連しているコンパイル単位および関連のソースと
リストの記録を維持するための、ソース識別パネルが用意されています。
ソース識別パネルにソースまたはリストの名前を入力することにより、それらのソースまたはリストを Debug Tool で使用可能にすることもできます。
ソース識別パネルは、コンパイル単位と対応のリストまたはソース・ファイルの名前とを
関連付け、ソース・ウィンドウの表示内容を制御します。ソース・ウィンドウに表示されているコンパイル単位を明示的に
指定するには、PANEL LISTINGS また
は PANEL SOURCES コマンドを入力することによって
ソース識別パネルにアクセスします。
Source Identification Panel
Command ===>
Compile Unit Listings/Source File Display
---------------------- --------------------------------- -------
DBKP515 TS64081.TEST.LISTING(IBME73) Y
___________ ____________________________ _
Enter QUIT to return with current settings saved.
CANCEL to return without current settings saved.
UP/DOWN to scroll up and down.
- コンパイル単位
- 現在 Debug Tool が認識している有効なコンパイル単位の名前です。新規のコンパイル単位は、認識されるたびにリストに追加されます。
- リスト/ソース・ファイル
- ソース・ウィンドウに表示されるコンパイル単位を含むリストまたは
ソース・ファイルの名前です。ファイルがリストの場合、ソース・プログラム・ステートメントのみが
表示されます。少なくともコンパイル単位名は指定しなければなりません。デフォルトのファイル指定は、pgmname LISTING * (COBOL および
PL/I) で、pgmname が
ユーザー・プログラムの名前です。TSO の場合、デフォルトのファイル指定は、順次データ・セット
では userid.pgmname.C (C および C++)、userid.pgmname.list (COBOL)、ま
たは userid.pgmname.list (PL/I)、また、区分データ・セットで
は、userid.dsname.C(membername) (C および C++)、
userid.dsname.Listing(membername) (COBOL)、また
は userid.dsname.List(membername) (PL/I) です。
- 表示
- ソース・ウィンドウに、リストまたはソース・ウィンドウを表示する
かどうかを指定するフラグです。
リスト視点を表示するには、以下のステップを実行してください。
- 適切なオプションを指定してプログラムをコンパイルし、ソース・ファイルまたはソース・リスト・ファイルを生成させます。
- そのファイルがホストのオペレーティング・システムで使用可能であり、またアクセス可能である
ことを確認してください。
- ソース識別パネルの Display フィールドをコンパイル単位の
場合には Y に設定してください。時間の節約のために、リストあるいはソースの表示を避ける場合は、N を指定
してください。
これらの条件のいずれかが満たされない場合、条件が満たされるコンパイル単位に制御が
渡されるまで、ソース・ウィンドウは空のままになります。
Listings/Source File フィールドに表示された
ソースまたはソース・リスト・ファイルの上に新しい名前を重ねて
入力することにより、コンパイル単位に関連するソースまたは
ソース・リストを変更することができます。
注:
新しい名前のうしろには、最低 1 個のブランクが必要です。
このパネルを変更した後は、QUIT コマンドを
出すか、QUIT PF キーを押して、Debug Tool セッション・パネルに戻ります。
- PROFILE
- フルスクリーン Debug Tool セッションのパラメーターを設定できる
プロファイル設定パネルを表示します。
- SOURCES
- LISTINGS と同等です。
使用上の注意
- PANEL コマンドで表示されるパネルの情報はすべて、QUIT を使用してパネルを終了すると保存されます。この方法で、指定したパネルの変更を保存すると、有効な現行設定値をもつ
Debug Tool セッションに戻ることができます。さらに、CANCEL を使用すると、変更を保存せずに、パネルを終了することができます。
- PANEL コマンドはログに記録されません。
例
- カラーと属性パネルを表示します。
PANEL COLORS;
- 現行のレイアウト構成のウィンドウの相対サイズをリセットします。
PANEL LAYOUT RESET;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
PERFORM コマンド (COBOL)
PERFORM コマンドは、1 つ以上のステートメントに、制御を明示的に
渡して、指定したステートメントによる実行が完了した後で、制御を次の実行可能
ステートメントに暗黙的に渡します。キーワードを省略することはできません。
単純型
- command
- 有効な Debug Tool コマンド。
反復型
- reference
- 有効な Debug Tool COBOL 参照。
- condition
- 単一比較条件。
- command
- 有効な Debug Tool コマンド。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連資料
- Enterprise COBOL for z/OS 言語解説書
PLAYBACK コマンド
PLAYBACK コマンドによって、記録および再生ができます。
- 実行したステートメント。
- ユーザーのプログラムに関する情報。例えば、変数およびレジスターの値およびファイルのステータス。
次の表は、PLAYBACK コマンドの形式を要約しています。
使用上の注意
PLAYBACK コマンドは、逆アセンブルされたプログラムのデバッグ中は使用できません。
PLAYBACK ENABLE コマンド
PLAYBACK ENABLE コマンドは、実行されるステートメントおよびプログラムに関する情報の記録を開始するよう、Debug Tool に指示します。Debug Tool が実行されるステートメントを既に記録している場合、PLAYBACK ENABLE コマンドを使用して、他のコンパイル単位で実行されるステートメントを記録するか、または DATA オプションの影響を変更するよう Debug Tool に指示することができます。

- cuname
- Debug Tool が実行されるステートメントを記録するコンパイル単位 (単一または複数) の名前。現在認識されているコンパイル単位の名前のみ指定できます。
- *
- Debug Tool がすべてのコンパイル単位で実行されるステートメントを記録するように指定します。これがデフォルトです。
- integer
- 収集されるデータを保管するために使用するメモリーの最大量を指定します。整数値は、K (1024) バイト単位で指定します。例えば、整数値 2000 は、2,048,000 バイトを表します。デフォルト値は 8000 です。
- DATA
- Debug Tool が、変数およびレジスターの値など、ユーザーのプログラムに関する情報を保存するよう指定します。Debug Tool はこの情報を cuname パラメーターで指定したコンパイル単位のため、または * パラメーターを指定した場合、すべてのコンパイル単位のために保存します。DATA パラメーターは、以下のコンパイラーによってコンパイルされたコンパイル単位に対してのみ有効です。
- Enterprise COBOL for z/OS バージョン 4.1
- 次のコンパイラーでは、TEST コンパイラー・オプションの SYM サブオプションを指定する必要があります。
- Enterprise COBOL for z/OS バージョン 3.3 およびバージョン 3.4
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 2
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 1、APAR PQ63235 適用
- COBOL for OS/390 & VM バージョン 2、APAR PQ63234 適用
DATA がデフォルトです。
- NODATA
- Debug Tool がユーザーのプログラムに関する情報を保存しないことを指定します。
使用上の注意
- For COBOL only: PLAYBACK ENABLE DATA コマンドを入力し、コンパイル単位が DATA パラメーターをサポートする場合、以下の情報が記録されます。
- FILE SECTION
- WORKING-STORAGE SECTION
- LOCAL-STORAGE SECTION
- LINKAGE SECTION
- ADDRESS OF、LENGTH OF、および WHEN-COMPILED を除くすべての特殊レジスター
PLAYBACK START コマンド
PLAYBACK START コマンドは通常のデバッグを中断し、Debug Tool に指示して、記録されたステートメントを再生する準備をします。通常のデバッグが中断されると、すべてのブレークポイントが使用不可になり、多くのコマンドが使用できなくなります。STEP コマンドおよび RUNTO コマンドを使用して、記録されたステートメントを順方向または逆方向にナビゲートします。逆方向が、ナビゲーションの初期方向です。
使用上の注意
以下のコマンドが、記録されたステートメントの再生中に使用可能です。
1 制約事項に関しては、PERFORM コマンド (COBOL) を参照してください。
DATA オプションが有効であり、コンパイル単位が DATA オプションをサポートする場合、以下のコマンドが使用できます。
2 宛先は、セッション変数でなければなりません。
記録されたステートメントを再生中は、以下のコマンドは使用できません。
PLAYBACK FORWARD コマンド
PLAYBACK FORWARD コマンドは、STEP コマンドおよび RUNTO コマンドを現在のステートメントから順方向に実行し、次のステートメントに行くよう、Debug Tool に指示します。
PLAYBACK BACKWARD コマンド
PLAYBACK BACKWARD コマンドは、STEP コマンドおよび RUNTO コマンドを現在のステートメントから逆方向に実行し、前のステートメントに行くよう、Debug Tool に指示します。PLAYBACK START コマンドを入力した場合、逆方向が初期方向です。
PLAYBACK STOP コマンド
PLAYBACK STOP コマンドは、PLAYBACK START コマンドを入力したステートメントにおいて通常のデバッグを再開します。すべての中断されたブレークポイントが使用可能になり、すべてのコマンドが使用可能になります。Debug Tool は、実行されるステートメントの記録を続け、DATA オプションを指定した場合、ユーザーのプログラムに関する情報の記録を続けます。
PLAYBACK DISABLE コマンド
PLAYBACK DISABLE コマンドは、Debug Tool に指示して、実行されるステートメントの記録を停止し、DATA オプションを指定した場合、ユーザーのプログラムに関する情報の記録を停止します。記録が廃棄されている間に Debug Tool が収集したプログラムに関する情報。1 つ以上のコンパイル単位の記録を停止する指示を Debug Tool に出すことができます。1 つのコンパイル単位の記録を停止し、他のコンパイル単位の記録を続行する場合、記録を停止したコンパイル単位に対して収集された情報は廃棄されます。
- cuname
- Debug Tool に指定されたコンパイル単位 (単一または複数) の記録を停止する指示を出します。現在認識されているコンパイル単位の名前のみ指定できます。
- *
- Debug Tool にすべてのコンパイル単位の記録を停止する指示を出します。これがデフォルトです。
接頭部コマンド (フルスクリーン・モード)
接頭部コマンドは、ソース・リスト行およびモニター行に適用されます。
接頭部コマンドとは、ソース・ウィンドウまたはモニター・ウィンドウの接頭部域に入力されるコマンドで、自動モニター・セクションを含みます。コマンドについて詳しくは、コマンド名に対応するセクションを参照してください。
次の表に、接頭部コマンドの形式を要約します。
表 7. モニター・ウィンドウの接頭部コマンド
| HEX (MONITOR n HEX)MONITOR コマンド |
現行の MONITOR コマンド・セットの選択されたメンバーを 16 進表記で表示します。 |
| DEF (MONITOR n DEFAULT)MONITOR コマンド |
現行の MONITOR コマンド・セットの選択されたメンバーをデフォルト表記で表示します。 |
| CL (CLEAR MONITOR n)CLEAR コマンド |
現行の MONITOR コマンド・セットの選択されたメンバーを消去します。 |
| LIST (LIST MONITOR n) LIST MONITOR コマンド |
現行の MONITOR コマンド・セットの選択されたメンバーをリストします。 |
PROCEDURE コマンド
PROCEDURE コマンドによって、CALL プロシージャー・コマンド
を使用してアクセスできるコマンドのグループを定義することができます。PROCEDURE 内のコマンドを実行できるのは、CALL コマンドのみです。PROCEDURE の定義は、デバッグ・セッション全体にわたって有効です。
PROCEDURE キーワードは、PROC としてのみ省略することができます。PROCEDURE 定義は他の PROCEDURE 定義のサブコマンドにすることができます。ネストされたプロシージャーの名前は、収容プロシージャーの有効範囲しかもちません。セッション変数は、PROCEDURE 定義内で宣言することはできません。
さらに、プロシージャーを CALL ステートメントで呼び出すには、その前にそのプロシージャーが
定義されていなければなりません。
- name
- 有効な Debug Tool プロシージャー名を指定します。これは、現行のプログラム言語で有効な識別名でなければなりません。最大長は、31 文字です。
- command
- 宣言コマンドまたは PANEL コマンド以外の有効な Debug Tool コマンドを
指示します。
使用上の注意
- Debug Tool のプロシージャー名は常に大文字であるため、大/小文字混合の記号を使用できるプログラム言語での
プログラムであっても、プロシージャー名は大文字に変換します。
- GO または STEP コマンドが、プロシージャーまたは
ネストされたプロシージャー内で出された場合、そのプロシージャー、または
収容プロシージャーの中で GO または STEP の
後に続くコマンドはすべて無視されます。制御が Debug Tool に戻ると、収容 PROCEDURE の CALL に続く
ステートメントに戻ります。
- Debug Tool のデバッグ・セッション全体にわたって、プログラム言語設定値で
すべて有効であるように、プロシージャー名を選択することをお勧めします。
例
- プロシージャー proc1 が呼び出されるとき、変数 x、y、およ
び z の値が表示されます。
proc1: PROCEDURE; LIST (x, y, z); END;
- ステートメント 34 にブレークポイントを設定する、setat34 と命名されたプロシージャーを定義します。プロシージャー setat34 には、現在のステートメント・ブレークポイントをリストする、ネストされた
プロシージャー lister が含まれています。プロシージャー lister は、setat34 内でのみ呼び出すことができます。
setat34: PROCEDURE;
AT 34;
lister: PROCEDURE;
LIST AT STATEMENT;
END;
CALL lister;
END;
QUALIFY RESET コマンド
QUALIFY RESET コマンドは、SET QUALIFY RESET コマンドと同等です。
QUERY コマンド
QUERY コマンドは、指定した Debug Tool 設定の現行値、すべて
の Debug Tool 設定の現行設定値、または中断されているプログラム内の現行位置を表示します。
Debug Tool の設定については、SET コマンドを参照してください。
注:
- このコマンドは、リモート・デバッグ・モードで使用できます。
- 動的デバッグ機能がインストールされている場合のみ使用可能です。
- PL/I の場合のみ。
- ASSEMBLER
- 現行の ASSEMBLER 設定値を表示します。
- AUTOMONITOR
- 現行の AUTOMONITOR 設定値を表示します。
- CHANGE
- 現行の CHANGE 設定値を表示します。
- COLORS (フルスクリーン・モード)
- 現行の COLOR 設定値を表示します。
- COUNTRY
- 現行の COUNTRY 設定値を表示します。
- CURRENT VIEW
- 現在利用可能な CU に使用されているビューの名前を表示します。
- DBCS
- 現行の DBCS 設定値を表示します。
- DEFAULT LISTINGS
- 現行の DEFAULT LISTINGS 設定値を表示します。
- DEFAULT SCROLL (フルスクリーン・モード)
- 現行の DEFAULT SCROLL 設定値を表示します。
- DEFAULT VIEW
- アセンブラー CU に対して LOADDEBUGDATA コマンドが入力されたときに初期ビューとして使用されるビューの名前を表示します。
- DEFAULT WINDOW (フルスクリーン・モード)
- 現行の DEFAULT WINDOW 設定値を表示します。
- DISASSEMBLY
- 現行の DISASSEMBLY 設定値を表示します。
- DYNDEBUG
- 現行の DYNDEBUG 設定値を表示します。
- ECHO
- 現行の ECHO 設定値を表示します。
- EQUATES
- 現行の EQUATE 定義を表示します。
- EXECUTE
- 現行の EXECUTE 設定値を表示します。
- FIND BOUNDS
- 現行の FIND BOUNDS 設定値を表示します。
- FREQUENCY
- 現行の FREQUENCY 設定値を表示します。
- HISTORY
- 現行の HISTORY の設定値とサイズを表示します。
- IGNORELINK
- 現行の IGNORELINK 設定値を表示します。
- INTERCEPT
- 現行の INTERCEPT 設定値を表示します。
- KEYS (フルスクリーン・モード)
- 現行の KEYS 設定値を表示します。
- LDD
- 現行の LDD 設定値を表示します。
- LIST TABULAR
- 現行の LIST TABULAR 設定値を表示します。
- LOCATION
- 実行が中断されているステートメント ID を表示します。QUERY LOCATION で識別される現行のステートメントは、まだ実行されていません。ブレークポイントで中断されている場合、そのブレークポイントの説明も表示されます。
- LOG
- 現行の LOG 設定値を表示します。
- LOG NUMBERS (フルスクリーン・モード)
- 現行の LOG NUMBERS 設定値を表示します。
- LONGCUNAME
- 現行の LONGCUNAME の設定値を表示します。
- MONITOR COLUMN
- 現行の MONITOR COLUMN 設定値を表示します。
SET MONITOR COLUMN はバッチ・モードでも受け入れられますが、効果はありません。
- MONITOR DATATYPE
- 現行の MONITOR DATATYPE 設定値を表示します。
- MONITOR NUMBERS (フルスクリーン・モード)
- 現行の MONITOR NUMBERS 設定値を表示します。
- MONITOR WRAP
- 現行の MONITOR WRAP 設定値を表示します。
SET MONITOR WRAP はバッチ・モードでも受け入れられますが、効果はありません。
- MSGID
- 現行の MSGID 設定値を表示します。
- NATIONAL LANGUAGE
- 現行の NATIONAL LANGUAGE 設定値を表示します。
- PACE
- 現行の PACE 設定値を表示します。この設定は、バッチ・モードではサポートされません。
- PFKEYS
- 現行の PFKEY 定義を表示します。この設定は、バッチ・モードではサポートされません。
- PLAYBACK
- PLAYBACK の現行のステータスを表示します。
- PLAYBACK LOCATION
- 再生されているステートメントのステートメント ID を表示します。
- PROGRAMMING LANGUAGE
- 現行の PROGRAMMING LANGUAGE 設定値を表示します。Debug Tool は、C と C++ とを区別していませんので、C++ プログラムにも、C プログラムにもこのオプションを使用してください。
- PROMPT (フルスクリーン・モード)
- 現行の PROMPT 設定値を表示します。
- QUALIFY
- 現行の QUALIFY BLOCK 設定値を表示します。
- REFRESH (フルスクリーン・モード)
- 現行の REFRESH 設定値を表示します。
- RESTORE
- 現行の RESTORE 設定値を表示します。
- REWRITE
- 現行の REWRITE 設定値を表示します。この設定は、バッチ・モードではサポートされません。
- SAVE
- 現行の SAVE 設定値を表示します。
- SCREEN (フルスクリーン・モード)
- 現行の SCREEN 設定値を表示します。
- SCROLL DISPLAY (フルスクリーン・モード)
- 現行の SCROLL DISPLAY 設定値を表示します。
- SEQUENCE (PL/I)
- 現行の SEQUENCE 設定値を表示します。
- SETS
- SET コマンドによって制御されているすべての設定値を表示します。
- SOURCE
- 現行の SOURCE 設定値を表示します。
- SUFFIX (フルスクリーン・モード)
- 現行の SUFFIX 設定値を表示します。
- TEST
- 現行の TEST 設定値を表示します。
- WARNING (C)
- 現行の WARNING 設定値を表示します。
- WINDOW SIZES
- 現行の WINDOW SIZE 値と WINDOW CLOSE 情報を表示します。
ウィンドウ・サイズは、すべてのウィンドウが開かれている時に適用される値です。
使用上の注意
QUERY ASSEMBLER、QUERY AUTOMONITOR、QUERY
CURRENT VIEW、QUERY DEFAULT LISTINGS、QUERY
DEFAULT VIEW、QUERY DISASSEMBLY、QUERY DYNDEBUG、QUERY IGNORELINK、QUERY INTERCEPT、QUERY
LDD、QUERY LOCATION、QUERY LOG、QUERY
QUALIFY、QUERY REWRITE、および QUERY
WARNING の各コマンドは、リモート・デバッグ・モードで使用できます。
例
- 現行の ECHO 設定値を表示します。
QUERY ECHO;
- 現行の設定値をすべて表示します。
QUERY SETS;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
QUERY 接頭部 (フルスクリーン・モード)
ソース・ウィンドウ接頭部域でこのコマンドを指令する
と、ステートメント・ブレークポイントをもつ特定の行のステートメントを照会します。
使用上の注意
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
QUIT コマンド
QUIT コマンドは、Debug Tool セッションを終了して、式が指定されている
場合に戻りコードを設定します。また、フルスクリーン・モードでは、デバッグ・セッションを終了してよいかどうかをユーザーに尋ねるプロンプト・パネルを表示します。行モード、バッチ・モード、およびリモート・デバッグ・モードでは、QUIT コマンドはプロンプトを出さずにセッションを終了します。
- expression
- 現行のプログラム言語で有効な Debug Tool 式を記入します。
expression が指定されると、この値は、アプリケーションの
戻りコード値として使用されます。実際の実行のための戻りコードは、実行環境によって決められます。
expression は、リモート・デバッグ・モードでは使用できません。
- ABEND
- ABEND を指定すると、Debug Tool は CEE2F1 例外を発生させ、それぞれのアクティブなエンクレーブを終了します。
- DEBUG
- DEBUG を指定すると、Debug Tool は終了し、ユーザー・プログラムは実行を継続します。Debug Tool を再始動する呼び出しはすべて無視されます。デフォルトでは、CICS において、
疑似会話型アプリケーションが、会話が終了するまで (CICS に戻るために、TRANSID を指定しないで EXEC CICS RETURN が出されるまで) 実行されます。
- TASK
- TASK は CICS 疑似会話型アプリケーションに適用されます。
TASK が指定されると、現行の CICS 疑似会話型タスクが終了するまで (EXEC CICS RETURN TRANSID)、Debug Tool 処理は中止されます。
新規タスクが疑似会話型で開始されると、Debug Tool デバッグが再開されます。
使用上の注意
- Debug Tool は、CADP または DTCN がパターンで正常に一致する場合にのみ、新規の疑似会話型タスクで再開されます。
- QUIT は、コマンド・リストに表示される場合を除いて、常にコメント行に記録されます。これにより、ログ・ファイルを主コマンド・ファイルとして再使用できます。
- QUIT が Debug Tool コマンド・ファイルから入力された場合、プロンプトは表示されません。この振る舞いは、Debug Tool 設定ファイル、主コマンド・ファイル、および USE ファイルでも同じです。
- PL/I の場合、式は、必要に応じて、FIXED BINARY (31,0) に
変換されます。さらに、式が指定されると、プログラムで PLIRETC 組み込みサブルーチンを呼び出したように使用されます。
- PL/I の場合、式の値は、負ではなく、1000 以下でなければなりません。
- QUIT DEBUG コマンドを入力して、その後 Debug Tool を再始動する場合は、最初にユーザー・プログラムを再始動する必要があります。
- CICS で実行されている非言語環境プログラム・アセンブラーまたは非言語環境プログラム の COBOL プログラムを
デバッグするときに QUIT または QQUIT コマンドを
入力すると、Debug Tool は、QUIT ABEND コマンドが入力された場合と同じように動作し、U4038 異常終了が発生します。
例
- Debug Tool セッションを終了します。
QUIT;
- Debug Tool セッションを終了し、変数 x の値をアプリケーションの戻りコードとして使用します。
QUIT (x);
- プログラムを終了しないで、Debug Tool セッションを終了します。
QUIT DEBUG;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
QQUIT コマンド
QQUIT コマンドは、その後プロンプトを出すことなく Debug Tool セッションを終了します。
使用上の注意
- フルスクリーン・モードでは、QQUIT コマンドは、デバッグ・セッションを終了することを確認するプロンプト・パネルを表示しません。
- CICS で実行されている非言語環境プログラム・アセンブラーまたは非言語環境プログラム の COBOL プログラムを
デバッグするときに QQUIT コマンドを
入力すると、Debug Tool は、QUIT ABEND コマンドが入力された場合と同じように動作し、U4038 異常終了が発生します。
例
Debug Tool セッションを終了します。
QQUIT;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
RESTORE コマンド
RESTORE コマンドでは、Debug Tool の終了時に SET SAVE AUTO コマンドで以前に保存された設定、
ブレークポイント、およびモニター指定を明示的に復元できます。
- SETTINGS
- 次の値を除くすべての SET 値が復元されることを示します。
- SET DBCS
- SET FREQUENCY
- SET NATIONAL LANGUAGE
- SET PROGRAMMING LANGUAGE
- SET RESTORE SETTINGS の FILE オペランド
- SET QUALIFY
- SET SOURCE
- SET TEST
- BPS
- ブレークポイントおよび LOADDEBUGDATA (LDD) 指定が復元されることを示します。
以下のブレークポイントが復元されます。
- APPEARANCE ブレークポイント
- CALL ブレークポイント
- DELETE ブレークポイント
- ENTRY ブレークポイント
- EXIT ブレークポイント
- GLOBAL APPEARANCE ブレークポイント
- GLOBALCALL ブレークポイント
- GLOBAL DELETE ブレークポイント
- GLOBAL ENTRY ブレークポイント
- GLOBAL EXIT ブレークポイント
- GLOBAL LABEL ブレークポイント
- GLOBAL LOAD ブレークポイント
- GLOBAL STATEMENT および GLOBAL LINE ブレークポイント
- LABEL ブレークポイント
- LOAD ブレークポイント
- OCCURRENCE ブレークポイント
- STATEMENT および LINE ブレークポイント
- TERMINATION ブレークポイント
据え置き AT ENTRY ブレークポイントが検出されなかった場合、その保存も復元も行われません。
- MONITORS
- モニターおよび LOADDEBUGDATA (LDD) 指定が復元されることを示します。
使用上の注意
- このコマンドによって復元されたデータは、デフォルトのデータ・セット、
または SET RESTORE SETTINGS、SET RESTORE BPS、SET RESTORE MONITORS のいずれかの
コマンドによって指定されたデータ・セットから取り出されます。
- ブレークポイントまたはモニター指定の復元に使用されるメンバー名は、現行エンクレーブの初期ロード・モジュールの名前です。
- RESTORE コマンドの前に、SET SAVE または別の RESTORE コマンドを除く他の Debug Tool コマンドを実行しないでください。
例
- 設定を復元します。
RESTORE SETTINGS;
- ブレークポイントおよびモニター指定を復元します。
RESTORE BPS MONITORS;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
RETRIEVE コマンド (フルスクリーン・モード)
RETRIEVE コマンドは、コマンド行に入力された最後のコマンドを
表示します。長いコマンドの場合、これだけでコマンドの最後の行となる場合があります。
- COMMAND
- コマンドを検索します。コマンド行に検索されるコマンドすべては、Enter を押すことにより
実行されます。さらに、検索されたコマンドは、実行前に修正することもできます。連続した RETRIEVE コマンドは、コマンド行にあらかじめ
入力された最高 12 までのコマンドを続けて表示します。このオペランドは、PF キーに割り当てると、有効に利用できます。
使用上の注意
- RETRIEVE コマンドはログに記録されません。
例
最後の行を検索して、コマンドを再度出すか、あるいは修正できるようにします。
RETRIEVE COMMAND;
RUN コマンド
RUN コマンドは、GO コマンドと同義です。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
RUNTO コマンド
RUNTO コマンドは、ブレークポイントを設定せずに、有効な実行可能ステートメントまでプログラムを実行します。ステートメント ID を指定するか、ステートメント上にカーソルを配置することによって、どのステートメントで停止するかを指示することができます。
- statement_id
- 有効なステートメント ID。逆アセンブルされたプログラムをデバッグしている場合、ステートメント ID を 16 進数形式のオフセットで指定します (X' オフセット')。
使用上の注意
- ステートメントにカーソルを置くことによってステートメントを指示する場合、カーソルは、ソース・ウィンドウの実行可能ステートメントが始まる行に置く必要があります。
- ステートメントにカーソルを置くことによってステートメントを指示する場合で、同じ行に複数のステートメントがあれば、RUNTO コマンドのターゲットはその行の最初の関連ステートメントです。最適化 COBOL プログラムでは、コマンドの宛先は、最適化プログラムによって廃棄されなかった最初の実行可能コマンドです。
- ステートメント ID を提供することによってステートメントを指示する場合、ステートメント ID は実行可能ステートメントでなければなりません。
- 以下のいずれかの条件が生じるまで、実行は継続します。
- カーソル位置またはステートメント ID によって指示された場所に到達する。
- 事前設定のブレークポイントに到達する。
- ジョブの最後に到達する。
- 最適化 COBOL プログラムでは、RUNTO コマンドは、ユーザーが指示したステートメントに到達するまで有効です。例えば、プログラムがブレークポイントに到達したあと GO コマンドまたは RUN コマンドを入力すると、次のブレークポイントに到達するまで、またはユーザーが指示したステートメントに到達するまで、プログラムは実行されます。
- RUNTO コマンドをリモート・デバッグ・モードで使用するには、「ブレークポイントを追加します」タスクの「オプション・パラメーター」セクションにある「アクション」フィールドでこのコマンドを入力する必要があります。
例
- ステートメント 67 まで実行します。ステートメント 67 は現在アクティブなブロック内にあります。
RUNTO 67;
- ブロック IPLI11A 内のステートメント 11 まで実行します。IPLI11A は現行エンクレーブ内で既知です。
RUNTO IPLI11A :> 11
- ステートメント 36 まで実行します。ステートメント 36 は、ソース・ウィンドウにあります。
- コマンド行で RUNTO と入力します。
- ステートメント 36 にカーソルをおきます。
- Enter キーを押します。
- PF キーを使用して、ステートメント 74 まで実行します。
- PF キーを定義して、カーソル位置まで実行します。
SET PF13 = RUNTO;
- カーソルをステートメント 74 に置いて、shift+PF1 キーを押します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
RUNTO 接頭部コマンド (フルスクリーン・モード)
ソース・ウィンドウの接頭部域でこのコマンドを出すと、ステートメントまで実行します。
使用上の注意
- RUNTO 接頭部の場合、キーワードと整数の間に区切り文字としてのスペースは必要はありません。すなわち、RUNTO 67 は RUNTO67 と同じです。
- 最適化 COBOL プログラムでは、1 つの行に複数のステートメントがある場合、RUNTO 接頭部は最適化プログラムによって廃棄されなかった最初の実行可能ステートメントまで実行されます。
例
ステートメント 67 まで実行します。ステートメント 67 は、ソース・ウィンドウにあります。
- ステートメント 67 の接頭部域に RUNTO と入力し、Enter を押します。
SCROLL コマンド (フルスクリーン・モード)
SCROLL コマンドにより、フルスクリーン・モードで、横方向と縦方向の
スクロールを行うことができます。スクロール・コマンドは、IMMEDIATE コマンドで直ちに有効になります。SCROLL キーワードは任意です。
ログ、モニター、メモリー、またはソースの各ウィンドウは、スクロール時にラップしません。

- DOWN
- ウィンドウ内の行を、指定した数だけ、そのウィンドウの上部マージンの方向に
スクロールします。DOWN は NEXT と同等です。
- LEFT
- ウィンドウ内の桁を、指定した数だけ、そのウィンドウの右側のマージンの
方向へスクロールします。SET MONITOR WRAP OFF が有効な場合に LEFT を使用すると、
モニター値領域に指定された文字数だけ右方向にスクロールできるため、表示されていない左方のデータを表示できるようになります。
- NEXT
- DOWN と同等です。
- RIGHT
- ウィンドウ内の桁を、指定した数だけ、そのウィンドウの左側のマージンの
方向へスクロールします。SET MONITOR WRAP OFF が有効な場合に RIGHT を使用すると、
モニター値領域に指定された文字数だけ左方向にスクロールできるため、表示されていない右方のデータを表示できるようになります。
- UP
- ウィンドウ内の行を、指定した数だけ、そのウィンドウの下部マージンの方向に
スクロールします。
- CSR
- 選択したウィンドウのカーソルの現在位置を基点として、スクロールを指定します。カーソルに位置づけられた文字がウィンドウの端に到達するまで、ウィンドウはそのカーソル位置の上方向、下方向、左方向、または右方向にスクロールされます。カーソルがウィンドウ内にない場合、あるいは、あらかじめウィンドウの端に位置づけられている場合、全ページのスクロールが行われます。
カーソルがモニター値領域にある場合、モニター値領域はカーソル位置の左または右にスクロールされます。
- DATA
- ウィンドウ・サイズよりも 1 行少ない行で、あるいはウィンドウ・サイズよりも 1 字小さい字数で
スクロールします (左方向と右方向の移動の場合)。カーソルがモニター値領域にある場合、モニター値領域は、モニター値領域の幅より 1 字小さい長さだけ
左または右にスクロールされます。
- HALF
- ウィンドウ・サイズの半分だけ、またはモニター値領域の半分だけスクロールします。
- integer
- 指定した行数 (上方または下方) または指定した文字数 (左方または右方) だけ
スクロールします。最大値は 9999 です。
- MAX
- データの終わりに到達するまで、指定した方向にスクロールします。最大限にスクロールするには、MAX キーワードを使用しなければなりません。スクロール量フィールドに指定することによって、最大限にスクロールすることはできません。
カーソルがモニター値領域にある場合、モニター値領域は、データの限界に達するまで左または右にスクロールされます。
- PAGE
- ウィンドウ・サイズだけ、またはモニター値領域のサイズだけスクロールします。
- BOTTOM
- データの下部にスクロールします。
- TO integer
- 選択したウィンドウで、指定した行に (選択したウィンドウの接頭部域に
示されたとおりに) スクロールするように指定します。これは、UP または DOWN のいずれかの方向に
行います (例えば、行 30 にいる場合、TO 20 を出すと、20 行目に
戻ります)。最大値は 999999 です。
- TOP
- データの上部にスクロールします。
- CURSOR
- カーソルが現在位置付けられているウィンドウを選択します。
- LOG
- セッション・ログ・ウィンドウを選択します。
- MEMORY
- メモリー・ウィンドウを選択します。
- MONITOR
- モニター・ウィンドウを選択します。
- SOURCE
- ソース・リスト・ウィンドウを選択します。
使用上の注意
- 以下のコマンドはメモリー・ウィンドウでは使用できません。
- SCROLL TOP
- SCROLL BOTTOM
- SCROLL TO
- SCROLL LEFT
- SCROLL RIGHT
- SCROLL MAX
- DOWN、LEFT、NEXT、RIGHT、また
は UP キーワードでオペランドが指定されておらず、カーソルがウィンドウ
域の外側にある場合は、スクロールされたウィンドウは、現在のデフォルト・ウィンドウ設定値で
判別されて (ウィンドウがオープンしている場合)、スクロール量
は、Debug Tool セッション・パネルの SCROLL フィールドで示されている
現在のデフォルト・スクロール設定値で判別されます。デフォルトのスクロール設定値とウィンドウ設定値
は、SET DEFAULT SCROLL と SET DEFAULT WINDOW コマンドで
制御されます。
- Debug Tool セッション・パネルの SCROLL フィールドが新しい値で上書きされると、コマンド行へコマンドを入力した場合と同様に、同じ機能の SET DEFAULT SCROLL コマンドを出します。(つまり、コマンドは
ログに記録され、取り出し可能です。)
- SCROLL コマンドはログに記録されません。
- モニター値領域を左または右にスクロールするには、SET MONITOR WRAP OFF を有効にして、カーソルをモニター値領域に置く必要があります。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SELECT コマンド (PL/I)
SELECT コマンドで、1 組の代替コマンドから 1 つを選択します。
参照が複数の WHEN 文節の条件を満たす場合、最初の WHEN 文節が実行されます。参照がない場合は、真になる式を含む最初の WHEN 文節が実行されます。どの WHEN 文節にも当てはまらない場合、OTHERWISE 文節
があれば、それに指定されているコマンドが実行されます。OTHERWISE 文節の実行が必要であるのに、指定されていない場合
は、Debug Tool のメッセージが出されます。
- reference
- 有効な Debug Tool の PL/I スカラー参照。集合体 (配列または構造体) は、参照として使用できません。
- WHEN
- 式または式のグループを評価し、さらに、SELECT キーワードの
直後にある参照と比較するか、あるいは、真か偽として評価
(参照 が省略されている場合) することを指定します。
- expression
- 有効な Debug Tool の PL/I の式。
- command
- 有効な Debug Tool コマンド。
- OTHERWISE
- 先行する WHEN ステートメントのすべてのテストが
該当しない場合に実行するコマンドを指定します。
使用上の注意
- SELECT コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
sum の値が c+ev の値に等しいとき、メッセージを表示します。sum の値が fv の値に等しいか、または 0 のとき、メッセージを表示します。sum の値が c+ev、fv の値に等しくなく、または 0 でもない場合は、Debug Tool のエラー・メッセージが出されます。
SELECT (sum);
WHEN (c + ev) LIST ('Match on when group number 1');
WHEN (fv, 0) LIST ('Match on when group number 2');
END;
SET コマンド
SET コマンドは、Debug Tool の操作に影響を与えるさまざまな
切り替えを設定します。SET コマンド以外で指定される場合を例外として、設定はデバッグ・セッション全体にそのまま有効です。
次の表は、SET コマンドの形式を要約しています。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET ASSEMBLER ON/OFF コマンド
逆アセンブルされたコンパイル単位は、TEST コンパイラー・オプションを指定してコンパイルされず、また LOADDEBUGDATA コマンドのオペランドとして使用されていない CU です。SET ASSEMBLER
ON コマンドにより、SET DISASSEMBLY ON コマンドで使用可能になった関数のサブセットが使用可能になります。逆アセンブルされたコンパイル単位に関する次の動作は、SET ASSEMBLER ON コマンドによって使用可能になります。
- 逆アセンブリー CU を停止するには、次のコマンドを使用します。
- AT APPEARANCE *
- AT APPEARANCE name
- 逆アセンブルされたコンパイル単位の名前を表示するには、次のコマンドを使用します。
- DESCRIBE CUS
- LIST
- LIST NAMES CUS
- QUERY SOURCE
- OFF
- アセンブラー・プログラムのデバッグ中に役に立つデータの表示を使用不可にします。
- ON
- アセンブラー・プログラムのデバッグ中に役に立つデータの表示を使用可能にします。
使用上の注意
- また、SET DISASSEMBLY ON を使用して、アセンブラー・プログラムのデバッグ中に役に立つ情報の表示を制御することもできます。
- このコマンドは、リモート・デバッグ・モードで使用できます。
例
逆アセンブル・コンパイル単位を LIST NAMES CUS および DESCRIBE CUS コマンドで表示される
コンパイル単位のリストに含めるには、次のコマンドを入力します。
SET ASSEMBLER ON ;
次回 LIST NAMES CUS または DESCRIBE CUS コマンドを入力すると、
逆アセンブル・コンパイル単位がコンパイル単位のリストに表示されます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET ASSEMBLER STEPOVER コマンド
Debug Tool がアセンブラー・コンパイル単位で STEP OVER コマンドをどのように処理するかを指定します。EXTONLY が有効な場合、Debug Tool は外部サブルーチンの呼び出しのみをステップオーバーします。EXTINT が有効な場合、Debug Tool は外部サブルーチンと内部サブルーチンの呼び出しをステップオーバーします。外部サブルーチンは現行のコンパイル単位の外部にあるサブルーチンで、内部サブルーチンは現行のコンパイル単位の内部にあるサブルーチンです。
Debug Tool は、以下のいずれかの状況が当てはまる場合に、現行のコンパイル単位 (CSECT) で次に何らかの命令を実行する時点で、ユーザーに制御を返します。
- EXTONLY が有効である
- EXTINT が有効であり、アセンブラー・プログラムが外部サブルーチンを呼び出す
Debug Tool は、以下のすべての状況が当てはまる場合に、ステップオーバーするサブルーチンがそのサブルーチンの呼び出しに続く命令に戻ると想定します。
- EXTINT が有効である
- 関数が内部サブルーチンである
- 現在の停止場所である命令の直後のアドレスに、実行可能命令 (データではなく) が含まれている
Debug Tool は、ユーザーが次のいずれかの命令を使用して内部サブルーチンを呼び出すものと見なします。
- BAL
- BAS
- BRAS
- BALR
- BASR
- BASSM
- BRASL
- EXTONLY
- Debug Tool が、外部サブルーチンをステップオーバー し、内部サブルーチンをステップスルー することを指定します。
- EXTINT
- Debug Tool が、外部サブルーチンと内部サブルーチンをステップオーバーすることを指定します。
使用上の注意
- EXTINT が有効な場合に、内部サブルーチンがそのサブルーチンの呼び出し直後の命令に戻らないと、次のいずれかの状況が発生する可能性があります。
- Debug Tool に制御が戻らない
- 別のブレークポイントが実行された場合にのみ Debug Tool に制御が戻る
- 外部イベントが発生した場合にのみ Debug Tool に制御が戻る
- Debug Tool に制御が戻らず、プログラムは強制終了されるまで実行される
- このコマンドは、リモート・デバッグ・モードで使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET AUTOMONITOR コマンド
Debug Tool が次に実行するステートメント、Debug Tool が最後に実行したステートメント、またはその両方のデータ項目のモニターを制御します。初期設定値は OFF です。
AUTOMONITOR は、以下のコンパイル単位でのみ働きます。
- TEST コンパイラー・オプションの SYM
サブオプションを指定してコンパイルした COBOL または PL/I コンパイル単位。Enterprise
COBOL for z/OS バージョン 4.1 でコンパイルする COBOL プログラムには、TEST コンパイラー・オプションの SYM サブオプションは必要ありません。
- アセンブラー、逆アセンブリー、または非言語環境プログラム の COBOL のコンパイル単位
SET AUTOMONITOR コマンドは、その他の言語で作成されたコンパイル単位
では働きません。
さらに、コンパイル単位は、以下のコンパイラーまたはアセンブラーのいずれかでコンパイルまたはアセンブルする必要があります。
- Enterprise COBOL for z/OS バージョン 4.1
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 2 以降
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 1、APAR PQ63235 適用
- COBOL for OS/390 & VM バージョン 2、APAR PQ63234 適用
- OS/VS COBOL バージョン 1 リリース 2.4
- Enterprise PL/I for z/OS and OS/390 バージョン 3 リリース 2 以降
- High Level Assembler for MVS & VM & VSE バージョン 1 リリース 4 以降
- ON
- Debug Tool が次に実行するステートメント、Debug Tool が最後に実行したステートメント、またはその両方のデータ項目のモニターを使用可能にします。LOG サブオプションを指定して、情報をログ・ファイルに保存します。
- OFF
- すべてのデータ項目のモニターを使用不可にします。情報は、ログ・ファイルに保存されません。
- LOG
- 情報をログ・ファイルに保存します。
- NOLOG
- 情報をログ・ファイルに保存しません。
- CURRENT
- Debug Tool が次に実行するステートメントのデータ項目をモニターします。
これがデフォルトです。
- PREVIOUS
- Debug Tool が最後に実行したステートメントのデータ項目をモニターします。
- BOTH
- Debug Tool が次に実行するステートメントおよび Debug Tool が最後に実行したステートメントのデータ項目をモニターします。
使用上の注意
- このコマンドは、リモート・デバッグ・モードで使用できます。
- PLAYBACK ENABLE コマンドの DATA オプションが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドで再生する間に SET AUTOMONITOR コマンドを使用することができます。ただし、BOTH または PREVIOUS パラメーターは使用できません。
- 自動モニターをサポートしないコンパイラーによってコンパイルされたコンパイル単位に対して SET AUTOMONITOR ON LOG コマンドを入力する場合、Debug Tool は、ブレークポイント・ロケーションをログに書き込みます。これは、到達したブレークポイントの記録となります (ブレークポイント・トレース)。可変情報は表示されません。
- 到達したブレークポイント (ブレークポイント・トレース) をログ・ファイルに記録するには、次のコマンドを入力します。SET AUTOMONITOR ON LOG; AT * GO;。
自動モニターをサポートするコンパイラーによってコンパイルされたコンパイル単位では、ステートメント・ロケーション、変数名、および変数の値がログに保存されます。
その他のコンパイル単位では、ステートメント・ロケーションがログに保存されます。
- Enterprise PL/I for z/OS バージョン 3 リリース 5 より前の PL/I コンパイラーでコンパイルされたプログラムをデバッグする場合、
ターゲット変数はリストされません。
例えば、次の PL/I ステートメントでは、J およびその値のみが表示されます。
I = J + 1
- アセンブラーおよび逆アセンブリーでは、Debug Tool は、32 ビット汎用レジスター、浮動小数点レジスター、およびストレージ・オペランドのみを表示します。Debug Tool は、それらを表示するとき以下のように表示します。
- レジスター・オペランドは番号順に表示されます。
- ストレージ・オペランドは、S1、S2、および S4 の順に表示されます。
- ストレージ・オペランドが単一のシンボルである場合は、そのシンボル名がモニター・ウィンドウの自動モニター・セクションに表示されます。その他の場合は、指定したオペランドはコメントとして表示され、_STORAGE 関数を使用してストレージ内容を表示します。例えば、_STORAGE(X'1F3C8'::4)) を使用すると、アドレス X'1F3C8' の 4 バイト・ストレージ・オペランドが表示されます。
- アセンブラー・コンパイル単位では、SET AUTOMONITOR コマンドが、単一マシン・インストラクションのみに関する情報を提供します。NOMACGEN ビューでも、SET AUTOMONITOR は 1 つのマシン・インストラクションのみに関する情報を提供し、現行のマクロ呼び出しの全オペランドは提供しません。
- 非言語環境プログラム の COBOL では、配列参照は AUTOMONITOR 出力に組み込まれません。
- すべてのデータ項目のモニターを使用不可にするには、SET AUTOMONITOR OFF または CLEAR MONITOR n コマンドを入力します。
ここで、n は自動モニター項目のモニター番号です。
モニター・ウィンドウの項目に、CL 接頭部コマンドを使用することもできます。
- プログラムをステップスルーしながら (STEP コマンドを使用)、PREVIOUS および BOTH オプションを使用して、ステートメントが実行される前後の変数値を確認します。
- PREVIOUS または BOTH オプションを使用して、GO コマンドでプログラムをひととおり実行すると、Debug Tool は最後に実行した行の変数値を表示します。この行は、ソース・ウィンドウで現行行の直前に表示されている行とは異なる場合があります。
- 次のいずれかの設定が有効であるときにエンクレーブ間で制御が転送されると、Debug Tool は前のエンクレーブからのデータを判別できません。
- SET AUTOMONITOR ON LOG に PREVIOUS または BOTH を設定
- SET AUTOMONITOR ON NOLOG に PREVIOUS または BOTH を設定
Debug Tool からメッセージが表示されます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET CHANGE コマンド
AT CHANGE ブレークポイントの検査の頻度を制御します。初期設定値は STATEMENT/LINE です。
- STATEMENT
- AT CHANGE ブレークポイントが、すべてのステートメントで検査されるように
指定します。STATEMENT は LINE と同等です。
- ALL
- AT CHANGE ブレークポイントが、すべてのステートメント、ブロックの入り口と出口、パス点で検査されるように指定します。
- BLOCK
- AT CHANGE ブレークポイントが、すべてのブロックの入り口と出口で
検査されるように指定します。
- LINE
- STATEMENT と同等です。
- PATH
- AT CHANGE ブレークポイントが、すべてのパス点で検査されるように
指定します。
例
- AT CHANGE ブレークポイントが、すべてのステートメントで
検査されるように指定します。
SET CHANGE;
- AT CHANGE ブレークポイントが、すべてのパス点で
検査されるように指定します。
SET CHANGE PATH;
SET COLOR コマンド (フルスクリーン・モードおよび行モード)
SCREEN 設定が ON のときに、カラー属性、強調表示属性、および輝度属性の制御を行います。カラー、強調表示、および輝度のキーワードは、任意の順序で指定することができます。

- CYCLE
- カラーを、順序どおりに次のカラーに変更します。その順序は、構文図に示されている順序です。
- BLINK
- 文字を明滅させます (端末でサポートされている場合)。
- NONE
- 文字を、通常の字体で表示します。
- REVERSE
- 文字を反転表示させます (端末でサポートされている場合)。
- UNDERLINE
- 文字に下線を引きます (端末でサポートされている場合)。
- HIGH
- 画面のカラーを高輝度にします (端末でサポートされている場合)。
- LOW
- 画面のカラーを低い輝度にします (端末でサポートされている場合)。
- CURSOR
- フィールド選択のために、カーソル・ポイントが使用できるように指定します。オプションとして、フィールド名 (例えば、COMMAND
LINE) を、構文図に示されたとおりに入力することができます。
- COMMAND LINE
- コマンド入力行 (===> の後) を選択します。
- LOG LINES
- ログ・ウィンドウの行番号部分を選択します。
- MEMORY ADDRESS
- メモリー・ダンプ域のアドレス列を選択します。
- MEMORY BASE ADDRESS
- 情報域の基底アドレスおよびヒストリー行を選択します。
- MEMORY CHARACTER
- メモリー・ダンプ域の文字カラムを選択します。
- MEMORY HEXADECIMAL
- メモリー・ダンプ域の 16 進列を選択します。
- MEMORY INFORMATION
- 情報域のヒストリー行を選択します。
- MEMORY OFFSET
- メモリー・ダンプ域のオフセット列を選択します。
- MONITOR AREA
- モニター・ウィンドウの 1 次区域を選択します。
- MONITOR LINES
- モニター・ウィンドウの行番号部分を選択します。
- PROGRAM OUTPUT
- ログ・ウィンドウに表示されるアプリケーション・プログラム出力を選択します。
- SOURCE AREA
- ソース・ウィンドウの 1 次区域を選択します。
- SOURCE BREAKPOINTS
- ブレークポイントが設定されるステートメントの隣に、ソース接頭部フィールドを選択します。
- SOURCE CURRENT
- 実行予定のソース・ステートメントを含む、行を選択します。
- SOURCE PREFIX
- ソース・ウィンドウの左側にステートメント ID の桁を選択します。
- SOURCE SUFFIX
- ソース・ウィンドウの右側に頻度桁を選択します。
- TARGET FIELD
- フルスクリーン・モードで、FIND コマンド (ある場合) のターゲットを選択します。
- TEST INPUT
- ログ・ウィンドウに表示された Debug Tool 入力を選択します。
- TEST OUTPUT
- ログ・ウィンドウに表示された Debug Tool 出力を選択します。
- TITLE FIELDS
- 現行のプログラム言語設定値またはプログラム内の現行位置などの、画面の最上行に
ある情報フィールドを選択します。
- TITLE HEADERS
- 画面の最上行の説明ヘッダー (位置など) を選択します。
- TOFEOF MARKER
- セッション・パネル・ウィンドウにあるファイルの始まり行とファイルの終わり行を
選択します。
- WINDOW HEADERS
- メイン・セッション・パネルにウィンドウのヘッダー行を選択します。
例
SET COUNTRY コマンド
アプリケーション・プログラムの現行の国別コード設定を変更します。言語環境プログラムでサポート
されている場合、または言語環境プログラム・ランタイムなしに実行されている場合にのみ使用可能です。
IBM 提供の初期値としての国別コードは US です。
- country_code
- 国別コードを識別する有効な 2 文字のセットが使用されます。国別コードには、以下の値のいずれか 1 つを当てることができます。
国別コードを短縮することはできません。
使用上の注意
- この設定値は、アプリケーションと Debug Tool の両方に影響を与えます。
- エンクレーブの開始時点では、設定値は、言語環境プログラム、オペレーティング・システム、
または Debug Tool ランタイム・オプションによって提供されたものになっています。
ネストされたエンクレーブの場合、子エンクレーブから戻ると、親の設定が復元されます。
例
日本に対応させるために、現行の国別コードを変更します。
SET COUNTRY JP;
SET DBCS コマンド
シフトイン・コードおよびシフトアウト・コードが、入力で解釈されて、DBCS 出力で提供されるかどうか
を制御します。SET DBCS は、すべてのプログラム言語に有効です。初期設定値は OFF です。
- ON
- シフトイン・コードおよびシフトアウト・コードを解釈します。フルスクリーン・モードでデバッグしていて、端末が DBCS 文字を表示できない場合は、このオプションは使用できません。
- OFF
- シフトイン・コードおよびシフトアウト・コードを無視します。
使用上の注意
- SET NATIONAL LANGUAGE ENU コマンドを入力した後、SET DBCS ON コマンドを入力すると、Debug Tool は、各国語を UEN に再設定して、DBCS 文字との互換性を保ちます。
- NATIONAL LANGUAGE を JPN または KOR に設定し、フルスクリーン・モードを使用する場合は、SET DBCS ON コマンドを入力して、Debug Tool が正しくメッセージを表示できるようにします。
例
シフトイン・コードとシフトアウト・コードを解釈するように指定します。
SET DBCS ON;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET DEFAULT LISTINGS コマンド
プログラムのソース、リスト、または 分離デバッグ・ファイル を求めて検索されるメンバーを持つ、デフォルトの区分データ・セットの DD 名または DS 名を定義します。
- ddname
- 有効な z/OS DD 名を指定します。
オペランドの長さが 9 文字より短く、ピリオドが含まれていない場合は、DD 名として解釈されます。
割り振られたデータ・セットが C、C++、または Enterprise PL/I ソースであり、ライブラリー・システム内のソース・ファイルへのアクセスに
EQAOPTS SUBSYS=ssss オプションが使用されている場合、ddname 書式は使用できません。
- dsn
- 有効な完全修飾 z/OS 区分データ・セット名を指定します。
- (dsn、dsn、...)
- 有効な z/OS 区分データ・セット名のリストを指定します。
使用上の注意
- このコマンドは、リモート・デバッグ・モードで使用できます。
- LISTINGS キーワードを省略することはできません。
- ddname または dsn が指定されないと、前のデフォルト・リスト設定は消去されます。
- データ・セット名が長すぎて 1 行に入力できない場合は、ファイル名の末尾にハイフンを付けます。
- SET SOURCE ON コマンドは、SET DEFAULT LISTINGS コマンドより高い優先順位をもちます。
- SET DEFAULT LISTINGS コマンドは、逆アセンブリー・コンパイル単位には影響しません。しかし、コンパイル単位が LOADDEBUGDATA コマンドのオペランドとして指定されると、保存して後で適用できます。
- CICS
環境でデバッグする場合は、ddname パラメーターは使用できません。
- C または C++ プログラムを、DEBUG コンパイラー・オプションの FORMAT(DWARF) サブオプションを指定してコンパイルした場合は、.dbg ファイルの新しい場所を指定するのに SET DEFAULT LISTINGS コマンドを使用することはできません。ファイルの新しい場所を指定するには、EQADEBUG DD ステートメントまたは EQAUEDAT ユーザー出口を使用します。
例
- デフォルトのリスト・ファイルを DS 名 SVTRSAMP.TS99992.MYPROG に割り振るように指示します。
SET DEFAULT LISTINGS SVTRSAMP.TS99992.MYPROG;
- プログラム MYPROG のリストは、SVTRSAMP.TS99992.MYPROG にあり、次のコマンドを使用して割り振られます。
ALLOC DDNAME(ITEM1) DSNAME('SVTRSAMP.TS99992.MYPROG') SHR
場所を指定するには、次のコマンドを入力します。
SET DEFAULT LISTINGS ITEM1;
- プログラム MYPROG のリストは JSMITH.COBPGMS.LISTING にあり、
次のコマンドを使用して割り振られます。
ALLOC FI(CBLIST) DAT('MJONES.OTHER.LISTING' 'JSMITH.COBPGMS.LISTING')
場所を指定するには、次のコマンドを入力します。
SET DEFAULT LISTINGS CBLIST
- プログラム AVER 用のリストは、myid.source.listing(AVERLIST) にあります。コマンド SET DEFAULT LISTINGS myid.source.listing を入力すると、Debug Tool は
PDS myid.source.listing 内で AVER という名前のメンバーを探します。
メンバーは AVERLIST と呼ばれるため、そのリストは検出されません。
場所を指定するには、次のコマンドを入力します。
SET SOURCE ON (AVER) myid.source.listing(AVERLIST);
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET DEFAULT SCROLL コマンド (フルスクリーン・モード)
SCROLL コマンドが、スクロール量を指定しないで出されたときに
使用される、デフォルトのスクロール量を設定します。初期設定値は PAGE です。
- CSR
- カーソルが位置付けられている文字がウィンドウの端に到達するまで、指定した方向にスクロールします。
- DATA
- ウィンドウ・サイズよりも 1 行少ない行で、あるいはウィンドウ・サイズよりも 1 字小さい字数で
スクロールします (左方向と右方向の移動の場合)。
- HALF
- ウィンドウ・サイズの半分だけスクロールします。
- integer
- 指定した行数 (上方または下方) または指定した文字数 (左方または右方) だけ
スクロールします。最大値は 9999 です。
- MAX
- データの終わりに到達するまで、指定した方向にスクロールします。
- PAGE
- ウィンドウ・サイズ単位でスクロールします。
例
デフォルトのスクロール量をウィンドウのサイズの半分に設定します。
SET DEFAULT SCROLL HALF;
SET DEFAULT VIEW コマンド
アセンブラー・コンパイル単位のデフォルト・ビューを制御します。
- STANDARD
- アセンブラー CU に LOADDEBUGDATA (LDD) コマンドが出されるたびに、
初期ビューにすべてのソース・ステートメントが表示されることを示します。
- NOMACGEN
- アセンブラー CU に LOADDEBUGDATA (LDD) コマンドが出されるたびに、
マクロ展開によって生成されなかったソース・ステートメントのみが初期ビューに表示されることを示します (PRINT NOGEN が有効な場合のアセンブラー・リストと同様)。
使用上の注意
- SET DEFAULT VIEW は、アセンブラー・コンパイル単位にのみ適用されます。
- このコマンドは、リモート・デバッグ・モードで使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET DEFAULT WINDOW コマンド (フルスクリーン・モード)
ウィンドウ参照コマンド (例えば、FIND、SCROLL、あるい
は WINDOW) が、明示的なウィンドウ識別を行わずに出され、さらに、カーソルが物理ウィンドウ域の外にあるときに、どの物理ウィンドウを選択するかを指定します。初期設定値は SOURCE です。
- LOG
- セッション・ログ・ウィンドウを選択します。
- MEMORY
- メモリー・ウィンドウを選択します。
- MONITOR
- モニター・ウィンドウを選択します。
- SOURCE
- ソース・リスト・ウィンドウを選択します。
例
デフォルトをスクロール・コマンドで使用するモニター・ウィンドウに設定します。
SET DEFAULT WINDOW MONITOR;
SET DISASSEMBLY コマンド
逆アセンブルされたコンパイル単位は、TEST コンパイラー・オプションを指定してコンパイルされず、また LOADDEBUGDATA コマンドのオペランドとして使用されていない CU です。SET DISASSEMBLY
ON コマンドにより、逆アセンブルされたコンパイル単位の次の動作が使用可能になります。
- 逆アセンブルされたコンパイル単位を限定するたびに、ソース・ウィンドウに逆アセンブリー・ビューが表示されます。コンパイル単位 (CU) にブレークポイントを設定するには、AT OFFSET コマンドを使用し、CU 内でステップスルーするには STEP コマンドを使用します。
- 逆アセンブリー CU を停止するには、次のコマンドを使用します。
- AT APPEARANCE *
- AT APPEARANCE name
- AT ENTRY *
- STEP INTO
- 逆アセンブルされたコンパイル単位の名前を表示するには、次のコマンドを使用します。
- DESCRIBE CUS
- LIST
- LIST NAMES CUS
- QUERY SOURCE
- ON
- ソース・ウィンドウに逆アセンブル表示を表示することを指定します。
- OFF
- 逆アセンブル表示をオフにします。これがデフォルト設定です。
使用上の注意
- 逆アセンブル表示は、逆アセンブルされたプログラムまたはデバッグ情報を持たないサポート言語で作成されたプログラムにのみ提供されています。
- このコマンドは、リモート・デバッグ・モードで使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET DYNDEBUG コマンド
動的デバッグ機能をアクティブにするか、非アクティブにするかを制御します。
以下のタイプのプログラムをデバッグするには、動的デバッグ機能がインストールされ、
アクティブにされている必要があります。
- TEST コンパイラー・オプションの
NONE または NOHOOK サブオプションを指定してコンパイルされた COBOL プログラム。
- Enterprise PL/I for z/OS バージョン 3 リリース 4 以降、および TEST コンパイラー・オプションの NOHOOK サブオプションを指定してコンパイルされた PL/I プログラム。
- アセンブラー・プログラム
- 逆アセンブルされたプログラム (逆アセンブル・ビューを使用)
- 非言語環境プログラム の COBOL プログラム1
- 言語環境プログラム・ランタイムなしで実行されるプログラム1
動的デバッグ機能を使用すると、プログラムをデバッグするときに、
コンパイルで挿入されたフック (COBOL、C/C++、および PL/I のコンパイラーでコンパイルされたもの)
を使用してプログラムのパフォーマンスを向上させることができます。
動的デバッグ機能がインストール済みの場合、初期設定は ON です。
未インストールの場合、初期設定は OFF で、動的デバッグ機能はアクティブにできません。
- ON
- 動的デバッグ機能をアクティブにします。
- OFF
- 動的デバッグ機能を非アクティブにします。
使用上の注意
- デバッグ・セッションでプログラムに動的デバッグ・フックを明示的または暗黙的に挿入した後では、SET DYNDEBUG OFF コマンドは使用できません。
- このコマンドは、リモート・デバッグ・モードで使用できます。
- Enterprise COBOL for z/OS バージョン 4.1 の TEST コンパイラー・オプションの NOHOOK サブオプションを指定してコンパイルした COBOL プログラムは、動的デバッグ機能を使用してデバッグできます。
- TEST(NONE) コンパイラー・オプションを指定してコンパイルした COBOL プログラムをデバッグし、動的デバッグ機能を使用するには、以下のコンパイラーのいずれかを使用してコンパイルする必要があります。
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390 & VM バージョン 2 リリース 2
- COBOL for OS/390 & VM バージョン 2 リリース 1、APAR PQ40298 適用
- COBOL プログラムの場合、GOTO または JUMPTO コマンドは以下の状態で使用できます。
- コンパイラーによってフックが挿入されコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用する場合は、TEST コンパイラー・オプションの HOOK サブオプションを指定してプログラムをコンパイルします。次のいずれかのコンパイラーを使用する場合は、TEST コンパイラー・オプションの PATH または ALL サブオプション、および SYM サブオプションを指定してプログラムをコンパイルします。
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390 & VM バージョン 2
- コンパイラーによってフックが挿入されず最適化も行わずにコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用する場合は、TEST コンパイラー・オプションの NOHOOK サブオプションを指定してプログラムをコンパイルします。次のいずれかのコンパイラーを使用する場合は、TEST コンパイラー・オプションの NONE サブオプションを指定してプログラムをコンパイルします。
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 2 以降
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 1、APAR PQ63235 適用
- COBOL for OS/390 & VM バージョン 2 リリース 2
- COBOL for OS/390 & VM バージョン 2 リリース 1 (APAR PQ63234 インストール済み)
- コンパイラーによってフックが挿入されず、最適化を行ってコンパイルされた COBOL プログラム。Enterprise COBOL for z/OS バージョン 4.1 を使用してプログラムをコンパイルし、TEST コンパイラー・オプションの EJPD および NOHOOK サブオプションを指定する必要があります。EJPD サブオプションを指定すると、最適化の一部が失われる原因になることがあります。
- 動的デバッグ機能では、コンパイラーの以下のサブオプションを使用してコンパイルされたプログラムでのアテンション割り込みはサポートされません。
- 次のコンパイラーでは、TEST コンパイラー・オプションの NOHOOK サブオプション
- Enterprise COBOL for z/OS バージョン 4.1
- Enterprise PL/I for z/OS バージョン 3.4 以降
- 次のコンパイラーでは、TEST コンパイラー・オプションの NONE サブオプション
- Enterprise COBOL for z/OS and OS/390 バージョン 3
- COBOL for OS/390 & VM バージョン 2
- 以下のコンパイラーを、コンパイルで挿入するフックを追加する TEST コンパイラー・オプションのサブオプションを指定して使用すると、動的デバッグ機能を使用して実行時にフック
(Debug Tool がコンパイルで挿入するフックの代わりに使用します) を追加することができます。
こうすることで、Debug Tool の制御の下で実行する際にプログラムのパフォーマンスを向上させることができます。
- Debug Tool がサポートする任意の COBOL コンパイラー
- Debug Tool がサポートする任意の C/C++ コンパイラー
- Debug Tool がサポートする任意の PL/I コンパイラー
- ご使用のシステムに動的デバッグ機能がインストール済みかどうかを判別するには、システム管理者に問い合わせてください。
- 異なる TEST オプションを使用してコンパイルされた同じプログラムは、異なる場所で実行を停止することも、同じシナリオで実行を停止することもあります。例えば、TEST(ALL,...) を使用してプログラムをコンパイルし、最初の 3 行をステップスルーすると、実行が 4 行目で停止します。しかし、同じプログラムを TEST(NONE,SYM,...) を使用してコンパイルし、最初の 3 行を処理すると、実行は 5 行目で停止します。この違いは、コンパイラーによって使用される最適化手法によります。
小さな矢印は、同じプログラムが 2 つの異なる方法でコンパイルされた場合に Debug Tool が停止する場所を示します。
| TEST(ALL) でコンパイルされたプログラム |
TEST(NONE) でコンパイルされたプログラム |
| 000001 MOVE... |
000001 MOVE... |
| 000002 ADD... |
000002 ADD... |
| >000003 LABEL: ... |
000003 LABEL: ... |
| 000004 MOVE... |
>000004 MOVE... |
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET ECHO コマンド
GO および STEP コマンドがサブコマンドでない
ときに、それらがログ・ウィンドウに記録されるかどうかを制御します。一連の GO および STEP コマンドが長く続くと、ログ・ウィンドウが混乱して、わずかな追加情報しか表示されません。SET ECHO を使用すれば、これらのコマンドの表示を抑止することができます。ログ・ファイルの内容には影響はありません。初期設定値は ON です。
- ON
- ログ・ウィンドウに、指定されたコマンドを表示します。
- OFF
- ログ・ウィンドウでの、指定されたコマンドの表示を抑止します。
- keyword
- GO (オペランドなし) または STEP のいずれかにする
ことができます。
- *
- このコマンドが GO コマンドと STEP コマンドに
適用されることを指定します。これがデフォルトです。
例
- GO コマンドおよび STEP コマンドの表示を抑止することを
指定します。
SET ECHO OFF;
- GO コマンドと STEP コマンドを表示するように指定します。
SET ECHO ON *;
SET EQUATE コマンド
記号と文字ストリングを等価にします。キーワード、識別名、または句読点が Debug Tool コマンド内で使用されているどの場所にも、等価の記号を使用
することができます。等価記号が Debug Tool コマンド (SET EQUATE と
CLEAR EQUATE の identifier オペランド以外) で検出
されると、その等価記号は指定のストリングに置き換えられ、その上で、解析が
続けられます。
- identifier
- 現行のプログラム言語で有効な識別名を記入します。識別名の最大長は、次のとおりです。
- C では、32 バイトの SBCS 文字。
- COBOL および非言語環境プログラム の COBOL では、30 バイトの SBCS 文字。
- PL/I では、31 バイトの SBCS 文字。
識別名には DBCS 文字を含むことができます。
- string
- 現行のプログラム言語内のストリング定数を記入します。置き換えストリングの最大長は、255 SBCS 文字です。
使用上の注意
- 以下のコマンドのオペランドは、標準 Debug Tool 環境 (つま
り、TSO DS 名など) 以外の環境用であり、EQUATE された記号置換についてスキャンされません。
- COMMENT
- INPUT
- SET DEFAULT LISTINGS
- SET INTERCEPT ON/OFF FILE
- SET LOG ON FILE
- SET SOURCE (cu_spec)
- SYSTEM/SYS
- TSO
- USE
- EQUATE 定義を除去する場合、CLEAR EQUATE コマンドを
使用します。
- 現行のプログラム言語設定値を変更するときにアクセス可能なままにしておくには、現行の
プログラム言語設定値が C であるときに等価にされる記号が、大文字で入力されなければならず、かつ
別のプログラム言語で有効でなければなりません。
- EQUATE 識別名が既存のキーワードまたはキーワード省略形と一致する
場合、EQUATE が優先します。EQUATE 識別名があらかじめ定義されている場合、古い定義が新しい定義と置き換わります。
- EQUATE ストリングは、以前に SET EQUATE コマンドで設定された記号に
対しては、スキャンされず、置き換えも行われません。
例
- 記号 INFO を、"ABC, DEF (H+1)" と等価になる
よう指定します。現行のプログラム言語の設定は、C または COBOL のいずれかです。
SET EQUATE INFO = "ABC, DEF (H+1)";
- 記号 tstlen が 構造体位置指定のための、#define の等価と等しくなるように指定します。現行のプログラム言語の設定は C です。
上記の小文字の記号は、プログラム言語が変更されると、アクセス可能ではなくなる場合があります。
SET EQUATE tstlen = "struct1->member.b->c.len";
- 記号 VARVALUE がコマンド LIST x と等価になるように
指定します。
SET EQUATE VARVALUE = "LIST x";
SET EXECUTE コマンド
すべての入力ソースからのコマンドが実行されるのか、あるいは構文チェックだけが
行われる (主に、USE ファイルを検査するため) だけなのかを
制御します。初期設定値は ON です。
- ON
- コマンドが受け入れられて、実行されるように指定します。
- OFF
- コマンドを受け入れ、解析するように指示します。ただし、次のコマンドだけは、実行されます。END、GO、SET EXECUTE ON、QUIT、および USE のみです。
例
すべてのコマンドが受け入れられて、実行されるように指定します。
SET EXECUTE ON;
SET FIND BOUNDS コマンド
ソース・ウィンドウおよび行モードでの FIND コマンドに桁情報が指定されていない場合に、そのコマンドに対してデフォルトの左端の桁と右端の桁を指定します。ログ・ウィンドウとモニター・ウィンドウでは無視されます。
- leftcolumn
- 検索の左端の桁を指定する正整数。ソース・ウィンドウおよび行モードでのみサポートされます。ログ・ウィンドウとモニター・ウィンドウでは無視されます。
- rightcolumn
- 検索の右端の桁を指定する正整数。ソース・ウィンドウおよび行モードでのみサポートされます。ログ・ウィンドウとモニター・ウィンドウでは無視されます。
- *
- 各ソース・レコードの長さが検索の右端の桁として使用されるように指定します。ソース・ウィンドウおよび行モードでのみサポートされます。ログ・ウィンドウとモニター・ウィンドウでは無視されます。
使用上の注意
- SET FIND BOUNDS が設定されていない場合は、デフォルトで leftcolumn に 1、rightcolumn に * が設定されます。
- SET FIND BOUNDS をオペランドなしで入力すると、leftcolumn に 1、rightcolumn に * が設定されます。
- ソース・ウィンドウまたは行モードの FIND コマンドで桁の範囲を指定しなかった場合は、SET FIND BOUNDS コマンドで設定した範囲が FIND コマンドに使用されます。
例
COBOL の 領域 B で 2 つのストリング (paraa および variable-b) を検索する場合は、まず次のコマンドを入力して検索の範囲を設定します。
SET FIND BOUNDS 12 72;
次に、以下の FIND コマンドを入力して 2 つのストリングを検索します。
FIND paraa;
FIND variable-b;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET FREQUENCY コマンド
ステートメントの実行回数をカウントするか否かを制御します。初期設定値は OFF です。
- ON
- ステートメントの実行回数をカウントするように指定します。
- OFF
- ステートメントの実行回数をカウントしないように指定します。
- cu_spec
- 有効なコンパイル単位の指定。このオペランドが省略されると、ステートメント情報のすべてのコンパイル単位が処理されます。
使用上の注意
- 逆アセンブル表示では、SET FREQUENCY はサポートされません。
- 頻度データの収集によって相当量のオーバーヘッドが追加される可能性があるため、SET FREQUENCY コマンドを ON に設定するのは、このデータを利用する必要がある場合に限ってください。
このデータを利用する必要がないデバッグ・セッションでは、SET FREQUENCY
コマンドを型どおりに ON に設定しないでください。
- PLAYBACK ENABLE コマンドの DATA オプションが現行のコンパイル単位に対して有効な場合、記録されたステートメントを PLAYBACK コマンドを使用して再生する間に SET FREQUENCY コマンドを使用することができます。
例
ステートメント実行が、コンパイル単位 main および subr1 でカウントされる
ように指定します。
SET FREQUENCY ON (main, subr1);
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET HISTORY コマンド
Debug Tool への入力がヒストリー・テーブルに記録されるかどうかを指定し、オプションでそのテーブルのサイズを調整します。ヒストリー・テーブルには、最新処理のブレークポイントと条件に関する情報が入っています。初期設定値は ON で、初期サイズは 100 です。
- ON
- 呼び出しのヒストリーを維持します。
- OFF
- 呼び出しのヒストリーを抑止します。
- integer
- ヒストリー・テーブルに保持されている記入データの数を指定します。
使用上の注意
- ヒストリーは、逆アセンブル・コンパイル単位については収集されません。
例
- ヒストリー・テーブル・サイズを 50 行に調整します。
SET HISTORY 50;
- ヒストリーの記録をオフにします。
SET HISTORY OFF;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET IGNORELINK コマンド
設定値が ON のときは新しい LINK レベル (ネストされたエンクレーブ) がすべて無視されることを指定します。Debug Tool は、この新たに作成されたエンクレーブ内のプログラムで情報の収集や停止を行いません。初期設定値は OFF です。
- ON
- 新しいエンクレーブ (リンク) 内のプログラムが無視されます。Debug Tool は、新しいエンクレーブ内のプログラムでは停止しません。
- OFF
- 新しいエンクレーブ (リンク) 内のプログラムは無視されません。Debug Tool は新しいエンクレーブ内のプログラムのすべてのブレークポイントで停止します。
使用上の注意
- 新しいエンクレーブは、新たなメインプログラムを起動する EXEC LINK や EXEC XCTL などの言語構造体によって作成されます。
- このコマンドは、CICS プログラムでのみ有効です。
- このコマンドは、リモート・デバッグ・モードで使用できます。
- DTCN または CADP プロファイルは、SET IGNORELINK の設定値をオーバーライドします。
- STEP INTO コマンドを使用して新しいエンクレーブにステップイントゥすることができます。このコマンドは、SET IGNORELINK の設定値をオーバーライドします。ただし、SET IGNORELINK の設定値が変更されることはありません。
- 親エンクレーブ作成時に SET IGNORELINK の設定値が OFF であったために Debug Tool が親エンクレーブを無視しなかった場合は、STEP RETURN コマンドを使用すると親エンクレーブにしか戻ることができません。それ以外の場合、Debug Tool は自身が無視しなかった直前のエンクレーブ内の次のブレークポイントまで実行するか、アプリケーションの終わりまで実行します。
- DISABLE DTCN、ENABLE DTCN、DISABLE
CADP、および ENABLE CADP の各コマンドは、SET IGNORELINK の設定値をオーバーライドします。これにより、新しいエンクレーブをデバッグすることができますが、SET IGNORELINK の設定値が変更されることはありません。
- SET IGNORELINK の設定値が ON のときは、新しいエンクレーブ内のコンパイル単位に対してブレークポイントが復元されません。
- SET IGNORELINK の設定値が ON の場合、Debug Tool は新しいエンクレーブ内のコンパイル単位に対するどの据え置き入り口ブレークポイントでも停止しません。
- SET IGNORELINK の設定値が ON の場合、Debug Tool は新しいエンクレーブ内のどのブレークポイントでも停止しません。
- アプリケーションで発生した条件は、SET IGNORELINK の設定値にかかわらず報告されます。
- このコマンドを設定ファイル、コマンド・ファイル、またはグローバル設定ファイルで使用して、新たなデバッグ・セッションが開始されるたびにこのコマンドが実行されるようにすることができます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET INTERCEPT コマンド (C および C++)
指定したファイルへの入力、ファイルからの出力をインターセプトします。出力と入力に対するプロンプトは、ログに表示されます。
連続している入出力だけをインターセプトできます。入出力インターセプトは、SET INTERCEPT OFF コマンドを入力して終了させない限り、デバッグ・セッション全体で有効なままです。初期設定値は OFF です。
- ON
- 指定したファイルの入出力インターセプトをオンにします。出力はログに表示され、その前に、識別のためのファイル指定子が付いています。入力では、識別されたファイル指定子とともに、ログ内にプロンプト項目が出されます。その後で、INPUT コマンドを使用して、コマンド行に指定されたファイルの
入力を行うことができます。
- OFF
- 指定したファイルの入出力インターセプトをオフにします。
- FILE file_spec
- stdin、stdout、または stderr を
含む有効な fopen() ファイル指定子。FILE キーワードを省略することはできません。
使用上の注意
- インターセプトされたストリームまたはファイルは、ネストされたエンクレーブの実行中に C の入出力リダイレクトの対象にはなりません。
- SET INTERCEPT コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
fopen() ファイル指定子 dd:mydd の入出力インターセプトをオンにします。現行のプログラム言語の設定は C です。
SET INTERCEPT ON FILE dd:mydd;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET INTERCEPT コマンド (COBOL、フルスクリーン・モード、行モード、バッチ・モード)
コンソールへの入力、コンソールからの出力をインターセプトします。出力と入力に対するプロンプトは、ログに表示されます。
コンソールの入出力インターセプトは、SET INTERCEPT OFF コマンドを入力して終了させない限り、デバッグ・セッション全体で有効なままです。初期設定値は OFF です。
- ON
- コンソールの入出力インターセプトをオンにします。Debug Tool は出力をログに表示し、その前に出力を識別する CONSOLE キーワードを表示します。入力では、識別された CONSOLE とともに、ログ内にプロンプト項目が出されます。その後に、コマンド行で INPUT コマンドを使用してコンソールの入力を行うことができます。
- OFF
- コンソールの入出力インターセプトをオフにします。
- CONSOLE
- コンソールに対して入出力インターセプトをオンまたはオフにします。
これは、以下から構成されます。
- DISPLAY UPON CONSOLE からのジョブ・ログ出力
- STOP 'literal'からの画面出力 (および確認入力)
- ACCEPT FROM CONSOLE または ACCEPT FROM SYSIN の端末入力
使用上の注意
- CICS では、SET INTERCEPT はサポートされません。
- SET INTERCEPT コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
コンソールの入出力インターセプトをオンにします。現行のプログラム言語の設定は COBOL です。
SET INTERCEPT CONSOLE;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET INTERCEPT コマンド (COBOL、リモート・デバッグ・モード)
COBOL DISPLAY ステートメントからの出力をインターセプトします。
出力はデバッグ・コンソールに表示されます。出力インターセプトは、SET INTERCEPT OFF コマンドを入力して終了させない限り、デバッグ・セッション全体で有効なままです。初期設定値は OFF です。
- ON
- 出力インターセプトをオンにします。出力はデバッグ・コンソールに表示されます。
- OFF
- 出力インターセプトをオフにします。
例
コンソールに対して出力インターセプトをオンにします。
SET INTERCEPT ON;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET KEYS コマンド (フルスクリーン・モード)
SCREEN 設定が ON のときに、PF キー定義が
表示されるように制御します。初期設定値は ON です。
- ON
- PF キー定義を表示します。
- OFF
- PF キー定義の表示を抑止します。
- 12
- 画面の下に PF1 から PF12 までを示します。
- 24
- 画面の下に PF13 から PF24 までを示します。
例
PF キー定義の表示が抑止されるように指定します。
SET KEYS OFF;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET LDD コマンド
複数の CSECT を含むアセンブリーのデバッグ・データをロードする方法を制御します。
初期設定値は SINGLE です。
- SINGLE
- 他の CSECT を使用してアセンブルされた CU のデバッグ・データをロードする後続の LOADDEBUGDATA (LDD) コマンドが、
指定された CU のみに関するデバッグ・データをロードすることを示します。
- ALL
- 他の CSECT を使用してアセンブルされた CU のデバッグ・データをロードする後続の LOADDEBUGDATA (LDD) コマンドが、
アセンブリー内のすべての CU に関するデバッグ・データをロードすることを示します。
使用上の注意
- このコマンドは、据え置きと非据え置きの両方の LDD コマンドに影響します。
- LDD のターゲットが非言語環境プログラム の COBOL CU の場合、このコマンドは無効です。
- SET LDD ALL が有効な場合に、次の作業を行うときは、
以前に LDD コマンドを入力したときのアセンブリー内の CU ごとに個別の SET SOURCE コマンドを
入力する必要があります。
- 同じアセンブリー内の複数の CU に対して 1 つの LDD コマンドを入力します。
- これらの CU に関するデバッグ・データが見つからなかったとします。
- 続いて、これらの CU の 1 つに対して SET SOURCE コマンドを入力します。
- このコマンドは、リモート・デバッグ・モードで使用できます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET LIST TABULAR コマンド
LIST コマンドの出力を表形式でフォーマット設定するかどうかを制御します。
デフォルトの設定値は OFF です。
- ON
- LIST コマンドの出力を表形式で表示します。
- OFF
- LIST コマンドの出力を線形フォーマットで表示します。
これがデフォルト設定です。
SET LOG コマンド
実行された各コマンドとその結果の出力をログ・ファイルに書き込み、使用されるファイルを定義 (あるいは
再定義) するかどうかを制御します。初期設定値は ON FILE INSPLOG です。これは、z/OS で有効な DD 名です。
- ON
- コマンドと出力がログ・ファイルに書き込まれるように指定します。
- FILE fileid
- 使用されるログ・ファイルを識別します。FILE キーワードを省略することはできません。
CICS 以外では、fileid は DD 名または完全修飾データ・セット名です。
区分データ・セットは使用できません。
CICS では、fileid は完全修飾データ・セット名です。
fileid の形式が DD 名の場合、Debug Tool は、そのファイルが割り振られているかどうかを確認します。
フルスクリーン・モードでは、ログ・ファイルを 3270 端末へ割り振ってはいけません。
- OLD
- 指定したファイル内で既存の情報を新しい情報で置換することを指定します。fileid で DD 名を指定すると、このオペランドは無視されます。
- MOD
- 指定したファイル内で既存の情報の後ろに新しい情報を付加することを指定します。fileid で DD 名を指定すると、このオペランドは無視されます。
- KEEP count
- 表示に保持されるログ出力の行数を指定します。初期設定値は 1000 です。count をゼロ (0) には
設定できません。
- OFF
- コマンドと出力がログ・ファイルに書き込まれないように指定します。
使用上の注意
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET LOG NUMBERS (フルスクリーン・モード)
行番号が、ログ・ウィンドウに示されるかどうかを制御します。初期設定値は ON です。
- ON
- ログ・ウィンドウに行番号を表示します。
- OFF
- ログ・ウィンドウでの行番号の表示を抑止します。
例
ログ行番号を示さないように指定します。
SET LOG NUMBERS OFF;
SET LONGCUNAME コマンド
短い CU 名または長い CU 名を表示するかどうかを制御します。
- ON
- 長い CU 名を表示することを指定します。
- OFF
- 短い CU 名を表示することを指定します。
短い CU 名は、セッション・パネル・ヘッダー、ソース・ウィンドウ・ヘッダー域、
およびソース識別パネルに表示されます。
使用上の注意
例
- CU 名が SMITH.TEST.SRC(ARRAY3) である場合、短い名前は ARRAY3 です。
- CU 名が SMITH.TEST.SOURCE.ABCD である場合、短い名前は ABCD です。
- CU 名が /testenvir/applications/cicsprograms/project1/prog2.cpp である場合、短い名前は prog2.cpp です。
SET MONITOR コマンド
モニター・ウィンドウに表示される変数の名前と値のフォーマットおよびレイアウトを制御します。
- COLUMN
- 出力をモニター・ウィンドウに列形式で表示するかどうかを制御します。
初期設定は SET MONITOR COLUMN ON です。SET MONITOR COLUMN はバッチ・モードでも受け入れられますが、効果はありません。
- DATATYPE
- 変数のデータ型をモニター・ウィンドウに表示するかどうかを制御します。
初期設定は SET MONITOR DATATYPE OFF です。
- NUMBERS (フルスクリーン・モード)
- 行番号をモニター・ウィンドウに表示するかどうかを制御します。
初期設定は SET MONITOR NUMBERS ON です。
- WRAP
- モニター・ウィンドウで出力を折り返すかどうかを制御します。
初期設定は SET MONITOR WRAP ON です。SET MONITOR WRAP はバッチ・モードでも受け入れられますが、効果はありません。
- ON
- 対応するスイッチを次の値に設定します。
- COLUMN
- モニター・ウィンドウ出力を列で位置合わせした形式で表示します。
- DATATYPE
- 変数のデータ型属性をモニター・ウィンドウに表示します。
- NUMBERS
- 行番号をモニター・ウィンドウに表示します。
- WRAP
- モニター・ウィンドウでモニター値領域変数を折り返します。
- OFF
- 対応するスイッチを次の値に設定します。
- COLUMN
- モニター・ウィンドウ出力を列で位置合わせしない形式で表示します。
- DATATYPE
- 変数のデータ型属性をモニター・ウィンドウに表示しません。
- NUMBERS
- 行番号をモニター・ウィンドウに表示しません。
- WRAP
- 変数の名前と値をモニター・ウィンドウの同一行に表示します。
値が長すぎてモニター・ウィンドウに表示できない場合、領域はスクロール可能になります。
使用上の注意
SET MONITOR COLUMN スイッチが OFF に設定されているときに SET MONITOR WRAP OFF コマンドが入力された
場合、Debug Tool は、MONITOR COLUMN の設定が ON のときにスクロール可能な 1 行にある値のみを表示することができるため、コマンドは
拒否されます。
最初に SET MONITOR COLUMN ON コマンドを入力する必要があります。
SET MONITOR WRAP が OFF に設定されているときに SET MONITOR COLUMN OFF コマンドが入力されると、コマンドは
拒否されます。
スクロール可能な 1 行にある値を表示するためには、モニター・ウィンドウが縦欄の形式になっている必要があります。
最初に SET MONITOR WRAP ON コマンドを入力する必要があります。
例
- モニター・ウィンドウに行番号を表示しないように指定するには、次のコマンドを入力します。
SET MONITOR NUMBERS OFF;
- 変数値を次の行に折り返さないように指定するには、次のコマンドを入力します。
SET MONITOR WRAP OFF;
SET MSGID コマンド
Debug Tool のメッセージにメッセージ接頭語 ID を付けて表示するか否かを制御します。初期設定値は OFF です。
- ON
- メッセージ ID を表示します。メッセージの最初の 7 文字は、メッセージ接頭部 ID EQAnnnn であり、その次は 1 つのブランク、そして最後に従来のメッセージ・テキスト
です (例えば、「EQA2222 プログラムが存在しません。」など)。
- OFF
- メッセージ・テキストだけを表示します。
例
メッセージ識別名の表示が抑止するように指定します。
SET MSGID OFF;
SET NATIONAL LANGUAGE コマンド
アプリケーションを異なる実行時の各国語に切り替えて、メッセージが表示されるときにどの翻訳版を使用するかを決めます。この切り替えは、実行時環境全体で有効であり、Debug Tool の活動だけに限定されません。初期設定値は、現行のエンクレーブの設定に従って、言語環境プログラムまたは NATLANG Debug Tool ランタイム・オプションによって提供されます。
- language_code
- 使用される言語を識別する有効な 3 文字のセット、あるいは (互換性
を持たせるために) C/370™ と PL/I の INSPECT の以前のリリースで受け入れられた 2 文字
の言語コードの 1 つです。言語コードには、以下の値のいずれかを指定することができます。
- United States English: ENU
- United States English (Uppercase): UEN
- Japanese: JPN
- Korean: KOR
- SET DBCS ON コマンドを入力すると、各国語を ENU に設定しても、Debug Tool は各国語を UEN に
再設定して、DBCS 文字との互換性を保ちます。
C/370 と PL/I の INSPECT の以前のリリースとの互換性については、以下のとおりです。
- EN または ENGLISH が ENU にマップされます。
- UE または UENGLISH が UEN にマップされます。
- JA、JAPANESE、NI、また
は NIHONGO が JPN にマップされます。
使用上の注意
- フルスクリーン・モードで DBCS 文字を正しく
表示させるには、VTAM® 属性バイトの
言語フィールドの高位ビットが ON に設定されていなければなりません。
このビットが ON に設定されていることを検査するには、次のようにします。
- ISPF で、オプション 0 (設定) を選択します。
- コマンド行に、environ と入力します。
- Tab を押して、端末状況 (TERMSTAT) セクションへ進みます。使用可能フィールドで、2 (端末情報照会) を入力します。
- 統計のページがいくつか表示されます。GTTERM 情報セクションで、属性バイト・フィールドの 2 番目のバイト内の高位ビット値に注目します。このビット値が 1 (ON) でなければなりません。例えば、属性バイト・フィールドの値が x'008000C9' の場合、2 番目の
バイトが X'80' であるため、DBCS 文字は正しく表示されます。
ただし、属性バイト・フィールドの値が x'000000C9' の場合、DBCS 文字は正しく表示されません。
VTAM 属性バイトの言語フィールドの高位ビットを 1 (ON) に設定するには、VTAM システム管理者にお問い合わせください。
- SET NATIONAL LANGUAGE コマンドを使用して選択された言語は、アプリケーションと Debug Tool の両方に影響を与えます。
- エンクレーブの開始時点では、設定値は、言語環境プログラム、オペレーティング・システム、または NATLANG Debug Tool ランタイム・オプションによって提供されたものになっています。
ネストされたエンクレーブの場合、子エンクレーブから戻ると、親の設定が復元されます。
- NATIONAL LANGUAGE を JPN または KOR に設定し、フルスクリーン・モードを使用する場合は、SET DBCS ON コマンドを入力して、Debug Tool が正しくメッセージを表示できるようにします。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET PACE コマンド
1 秒当たりのステップでの、アニメーション実行の最大のペースを指定します。初期設定値は、1 秒当たり 2 ステップです。この設定は、バッチ・モードではサポートされません。
- number
- 0 から 9999 までの 10 進数を指定します。0.5 の倍数でなければなりません。
使用上の注意
- CICS プログラムをデバッグする場合は、ペースを慎重に選択します。
アニメーションを実行開始後は、停止できない場合があります。対話式セッション中のアテンション割り込み要求について詳しくは、「Debug Tool ユーザーズ・ガイド」を参照してください。
- STEP コマンドは、SET PACE コマンドと関連付けられます。アニメーション実行は、PACE を定義し、次に STEP n コマンド (ここ
で、n はアニメーション表示モードで表示されるステップ数) を出すことによって、実現
されます。STEP * を使用して、次のブレークポイントまでのすべてのステップをアニメーション・モードで観察できます。
- PACE を 0 に設定すると、アニメーション処理は行われません。
例
アニメーション実行のペースを、1 秒当たり 1.5 ステップに設定します。
SET PACE 1.5;
SET PFKEY コマンド
Debug Tool コマンドをプログラム・ファンクション・キー (PF キー) に関連付けます。この設定は、バッチ・モードではサポートされません。
- PFn
- 有効なプログラム・ファンクション・キー指定 (PF1 から PF24)。
- string
- ストリング定数として入力される PF キー表示 (KEYS 設定
が ON の場合) に示されるラベル。ストリングは、8 文字よりも長く指定されると、切り捨てられます。ストリングを省略すると、コマンドの最初の 8 文字が表示されます。C および C++ の場合は、ストリングを引用符 (") で囲む必要があります。COBOL、PL/I、アセンブラー、および逆アセンブルの場合は、ストリングを引用符 (") またはアポストロフィ (') で囲みます。
- command
- 有効な Debug Tool コマンド、またはコマンドの部分を指定します。
使用上の注意
例
PF5 キーを定義して、カーソル選択ウィンドウを下方へスクロール
します。
- プログラム言語の設定が COBOL の場合。
SET PF5 "Down" = IMMEDIATE SCROLL DOWN;
- プログラム言語の設定が PL/I の場合。
SET PF5 'Down' = IMMEDIATE SCROLL DOWN;
- プログラム言語の設定が C++ の場合。
SET PF5 "Down" = IMMEDIATE SCROLL DOWN;
すべてのケースで、PF17 の設定は同じままです。
SET PROGRAMMING LANGUAGE コマンド
現行のプログラム言語を設定します。現行のプログラム言語のみを、現在ロードされているプログラムの言語の選択に設定することができます。例えば、現行のロード・モジュールに C と COBOL の両方のコンパイル単位があり、PL/I のものはない
場合、言語を C または COBOL にのみ設定できます。しかし、後で、他のロード・モジュールに STEP または GO で
入り、そのロード・モジュールに C、COBOL、および PL/I のコンパイル単位が
ある場合は、それらの 3 つの言語のどれに設定することもできます。
プログラム言語設定は、入力される Debug Tool コマンドの解析に影響を与えます。コマンドの実行は、コマンドの解析時に有効であった、現行のプログラム言語設定と一貫性があります。実行時のプログラム言語設定は無視されます。
- CYCLE
- プログラム言語を、サポートされた言語のアルファベット順で、順序どおりに設定するように指定します。
- AUTOMATIC
- プログラム言語が、現行の修飾にしたがって設定され、それ以降、その修飾が変更されるたびに、あるいは STEP または GO が出される
たびに自動的に変更されるように指定して、HOLD を
取り消します。
- HOLD
- 指定された言語 (あるいは、言語が指定されていない場合、現行の言語) が、修飾の変更に関係なく、そのまま有効であるように指定します。その言語は、SET PROGRAMMING LANGUAGE で言語を変更するか、あるいは保留を解放するまで、そのまま有効です。
- ASSEMBLER
- 現行のプログラム言語を ASSEMBLER に設定します。
- C
- 現行のプログラム言語を C に設定します。Debug Tool は、C と C++ を区別しないので、このオプションを、C++ プログラム
にも C プログラムにも使用してください。
- COBOL
- 現行のプログラム言語を COBOL に設定します。
- DISASSEMBLY
- 現行のプログラム言語を逆アセンブルに設定します。
- NONLECOBOL
- 現行のプログラム言語を非言語環境プログラム の COBOL に設定します。
- PLI
- 現行のプログラム言語を PL/I に設定します。
使用上の注意
- CYCLE、または明示のプログラム言語名のうちの 1 つが指定される
場合、現行のプログラム言語設定値は、現在中断されているプログラムまたは
現行の修飾に関係なく、変更されます。
- 現行のプログラム言語設定値は、コマンドの実行ではなく、コマンドの解析に影響を与えます。コマンドは、常に、解析に使われたプログラム言語設定値に従って実行されます。例えば、Debug Tool プロシージャーに C と COBOL のコマンドを混合して使用することは
できません。プロシージャーが解析されても、プログラム言語の設定を変更する方法がなくなります。さらに、1 つのプログラム言語設定値で解析されるコマンドが、別のプログラム言語の、変数、タイプ、またはラベルを参照することはできません。
- SET PROGRAMMING LANGUAGE AUTOMATIC が有効な
場合 (すなわち、HOLD が有効でない場合)、修飾を変更することによって、現行のプログラム言語を、指定したブロックまたはコンパイル単位に自動的に
設定することができます。
- SET PROGRAMMING LANGUAGE を使用して、現在のエンクレーブあるいは
親のエンクレーブで、プログラム言語の設定をどのサポート言語にも設定できます。
例
C または C++ が現行のプログラム言語であるように指定します。
SET PROGRAMMING LANGUAGE C;
SET PROMPT コマンド (フルスクリーン・モード)
現行のプログラム位置を、行モードで、プロンプト・メッセージの部分として自動的に示すか否かを制御
します。この場合、現行の位置がパネル・ヘッダーに常に示されるので、フルスクリーン・モードでは有効ではありません。初期設定値は LONG です。
- LONG
- 長い形式のプロンプト・メッセージを使用します。
- SHORT
- 短い形式のプロンプト・メッセージを使用します。
例
長い形式のプロンプト・メッセージが使用されることを指定します。
SET PROMPT LONG;
SET QUALIFY コマンド
視点を、新しいブロック、コンパイル単位、またはロード・モジュールにリセットすることにより、参照
とステートメント番号の識別を単純化します。フルスクリーン・モードでは、これは、ソース・ウィンドウの内容に影響を与えます。現在ソース・ウィンドウに 1 つのコンパイル単位を表示していて、別のコンパイル単位を表示したい場合は、SET QUALIFY を入力して、その修飾を変更します。SET キーワードはオプションです。QUALIFY キーワードは省略できます。
- BLOCK
- 現行の視点を、指定したブロックに設定します。
- block_spec
- 有効なブロック指定。
- CU
- 現行の視点を、指定したコンパイル単位に設定します。
CU は、PROGRAM と同等です。
- cu_spec
- 有効なコンパイル単位の指定。
- PROGRAM
- CU と同等です。
- LOAD
- 現行の視点を、指定したロード・モジュールに設定します。
- load_spec
- 有効なロード・モジュール指定。省略すると、初期 (1 次) ロード・モジュール修飾が使用されます。
- RESET
- 修飾を中断プログラムのブロックにリセットして、(SCREEN 設定
が ON の場合に) 現行のステートメント行を表示するために
ソース・ウィンドウをスクロールします。
- RETURN
- 修飾を、次の上位呼び出し側プログラム側に切り替えます。
- UP
- 1 つの字句レベルより上の修飾を、静的な組み込みブロックに切り替えます。
使用上の注意
- SET PROGRAMMING LANGUAGE AUTOMATIC が有効な
場合 (すなわち、HOLD が有効でない場合)、修飾を変更することによって、現行のプログラム言語を、指定したブロックまたはコンパイル単位に自動的に
設定することができます。
- 複数のエンクレーブがあるプログラムをデバッグする場合は、以下に対してのみ SET QUALIFY コマンドを発行できます。
- Debug Tool で認識されていて、現行エンクレーブにあるロード・モジュール、コンパイル単位、およびブロック
- Debug Tool で認識されていないロード・モジュール、コンパイル単位、およびブロック
- 上位エンクレーブ内の非言語環境プログラム・アセンブラーのコンパイル単位
上位エンクレーブの一部であるロード・モジュールに対しては SET QUALIFY コマンドを出すことはできません。
コンパイル単位が非言語環境プログラムでない限り、上位エンクレーブ内のコンパイル単位に対して SET QUALIFY を出すことはできません。
- SET QUALIFY コマンドは、プログラムが GO コマンドで
再開されるときに、制御の流れの変更を暗黙指定しません。
- SET QUALIFY コマンドは、Debug Tool またはライブラリー・ブロックの
視点を修正することはできません。
- SET QUALIFY LOAD は QUERY QUALIFY の結果を変更しません。
- CU 名としてロード・モジュール名を指定せずに cu_spec を指定すると、Debug Tool は、次の順序で CU を検索します。
- 現在修飾されているロード・モジュール内の CU
- 既知のすべての CU
- 同じ名前のロード・モジュールに指定された名前で CU を検索
- SET QUALIFY LOAD コマンドまたは SET QUALIFY CU コマンドを入力して、Debug Tool に現在認識されていないロード・モジュールの名前を指定すると、Debug Tool はそのロード・モジュールに対して暗黙的な LOAD コマンドを実行します。暗黙的な LOAD が正常に実行されると、次のタイプのプログラムについて暗黙的な CU が作成されます。
- COBOL 以外のロード・モジュール内のすべての CU と逆アセンブル CU
- SET DISASSEMBLY ON が有効な場合は、逆アセンブル CU
- ロード・モジュールのエントリー・ポイントが逆アセンブル・プログラムの場合、SET DISASSEMBLY の設定は無視されます。
暗黙的な CU を使用すれば、ブレークポイントの設定や CU のソースの参照など、デバッグ作業を行うことができます。
GO や STEP などのコマンドを入力してプログラムを実行すると、
暗黙的にロードされたモジュールは削除され、
暗黙的に作成された CU に作成されたブレークポイントは中断され、
暗黙的に作成された CU はすべて破棄されます。
通常のプログラム実行時に CU が後で作成されると、中断状態のブレークポイントは再活動化されます。
- SET QUALIFY LOAD または SET QUALIFY CU コマンドを使用して、DLL を暗黙的にロードすることはできません。
- SET QUALIFY CU コマンドを入力して、実行されていないためにまだ作成されていない COBOL CU の名前を指定すると、Debug Tool は暗黙的な CU を作成します。
暗黙的な CU を使用すれば、ブレークポイントの設定や CU のソースの参照など、デバッグ作業を行うことができます。
GO や STEP などのコマンドを入力してプログラムを実行すると、
暗黙的に作成された CU に作成されたブレークポイントは中断され、
暗黙的に作成された CU はすべて破棄されます。
通常のプログラム実行時に CU が後で作成されると、中断状態のブレークポイントは再活動化されます。
- SET QUALIFY LOAD または SET QUALIFY CU コマンドを使用して COBOL プログラム用の暗黙的な CU を作成するには、言語環境プログラム APAR PK30521 用の PTF が z/OS バージョン 1 リリース 6、バージョン 1 リリース 7、およびバージョン 1 リリース 8 にインストールされていることが必要です。
- 言語環境プログラムがまだ活動状態にないエンクレーブで停止すると、SET QUALIFY LOAD または SET QUALIFY CU コマンドを
使用して、言語環境プログラム・ロード・モジュールをロードすることも、言語環境プログラム・コンパイル単位を作成することもできません。言語環境プログラムが現行エンクレーブで初期化された後でのみ、これらのコマンドを使用して言語環境プログラム・ロード・モジュールをロード、または言語環境プログラム・コンパイル単位を作成できます。
- SET QUALIFY CU および SET QUALIFY LOAD コマンドは、リモート・デバッグ・モードで使用できます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET REFRESH コマンド (フルスクリーン・モード)
画面の表示更新を制御します。このコマンドは、フルスクリーン・モードの場合にのみ、すなわち、SET SCREEN の設定値
が ON の場合にのみ有効です。REFRESH の初期設定値は OFF です。
- ON
- 画面の再書き込みのたびに、画面を消去します。アプリケーションが行モードの入出力を処理する場合、必須の設定値です。
- OFF
- 消去せずに再書き込みします。
使用上の注意
SET REFRESH ON は、画面を活用するアプリケーション、例えば、ISPF サービスを使用してパネルを表示するアプリケーションにも必要と
なります。
例
再書き込みが、変更した画面の部分だけに行われるように指定します。この画面は、再書き込みの前に消去されません。
SET REFRESH OFF;
SET RESTORE コマンド
設定、ブレークポイント、およびモニター指定の復元を制御します。
- SETTINGS
- SET 値および WINDOW SIZE と WINDOW CLOSE 設定を復元することを示します。以下の SET 値は復元されません。
- SET DBCS
- SET FREQUENCY
- SET NATIONAL LANGUAGE
- SET PROGRAMMING LANGUAGE
- SET RESTORE SETTINGS の FILE オペランド
- SET QUALIFY
- SET SOURCE
- SET TEST
- BPS
- ブレークポイントおよび LOADDEBUGDATA (LDD) 指定が復元されることを示します。
以下のブレークポイントが復元されます。
- APPEARANCE ブレークポイント
- CALL ブレークポイント
- DELETE ブレークポイント
- ENTRY ブレークポイント
- EXIT ブレークポイント
- GLOBAL APPEARANCE ブレークポイント
- GLOBALCALL ブレークポイント
- GLOBAL DELETE ブレークポイント
- GLOBAL ENTRY ブレークポイント
- GLOBAL EXIT ブレークポイント
- GLOBAL LABEL ブレークポイント
- GLOBAL LOAD ブレークポイント
- GLOBAL STATEMENT および GLOBAL LINE ブレークポイント
- LABEL ブレークポイント
- LOAD ブレークポイント
- OCCURRENCE ブレークポイント
- STATEMENT および LINE ブレークポイント
- TERMINATION ブレークポイント
- MONITORS
- モニターおよび LOADDEBUGDATA (LDD) 指定が復元されることを示します。
- NOAUTO
- Debug Tool の始動時に指定のデータが自動的に復元されないことを示します。
このデータは、RESTORE コマンドを入力して明示的に要求した場合にのみ復元されます。
AUTO が指定されるまで、NOAUTO がデフォルトです。
- AUTO
- Debug Tool が始動時に指定のデータ・セットを可能な限り自動的に復元することを示します。
使用上の注意
SET REWRITE コマンド (フルスクリーン・モード)
出力が長く続く場合は、定期的な画面再書き込みを強制します。
- number
- Debug Tool で画面の最新表示が行われる前に、アプリケーション・プログラムによって
書かれる、インターセプトされた出力の行数を指定します。初期設定値は 50 です。
例
画面出力の 100 行ごとの後に、画面再書き込みを強制します。
SET REWRITE EVERY 100;
SET REWRITE コマンド (リモート・デバッグ・モード)
リモート・デバッガーがデバッグ・コンソールに表示する COBOL DISPLAY ステートメントの最大数を設定します。
- number
- リモート・デバッガーがデバッグ・コンソールに表示する COBOL DISPLAY ステートメントの最大数を指定します。初期設定値は 50 です。
使用上の注意
リモート・デバッガーは、number より多くの DISPLAY ステートメントを表示する必要がある場合に、最新の DISPLAY ステートメントを表示できるように、最も古い DISPLAY ステートメントの削除を開始します。
例
表示する COBOL DISPLAY ステートメントの最大数を 100 に設定します。
SET REWRITE 100;
SET SAVE コマンド
設定、ブレークポイント、およびモニター指定の保存を制御します。

- SETTINGS
- SET 値および WINDOW SIZE と WINDOW CLOSE 設定を保存することを示します。以下の SET 値は保存されません。
- SET DBCS
- SET FREQUENCY
- SET NATIONAL LANGUAGE
- SET PROGRAMMING LANGUAGE
- SET RESTORE SETTINGS の FILE オペランド
- SET QUALIFY
- SET SOURCE
- SET TEST
- BPS
- ブレークポイントおよび LOADDEBUGDATA (LDD) 指定が保存されることを示します。
以下のブレークポイントが保存されます。
- APPEARANCE ブレークポイント
- CALL ブレークポイント
- DELETE ブレークポイント
- ENTRY ブレークポイント
- EXIT ブレークポイント
- GLOBAL APPEARANCE ブレークポイント
- GLOBALCALL ブレークポイント
- GLOBAL DELETE ブレークポイント
- GLOBAL ENTRY ブレークポイント
- GLOBAL EXIT ブレークポイント
- GLOBAL LABEL ブレークポイント
- GLOBAL LOAD ブレークポイント
- GLOBAL STATEMENT および GLOBAL LINE ブレークポイント
- LABEL ブレークポイント
- LOAD ブレークポイント
- OCCURRENCE ブレークポイント
- STATEMENT および LINE ブレークポイント
- TERMINATION ブレークポイント
- MONITORS
- モニターおよび LOADDEBUGDATA (LDD) の指定がすべて保存されることを示します。
- NOAUTO
- 指定された設定、ブレークポイント、または指定が Debug Tool の終了時に保存されないことを示します。
AUTO が指定されるまで、NOAUTO がデフォルトです。
- AUTO
- Debug Tool の終了時に指定のデータが可能な限り保存されることを示します。
- ONCE
- 設定情報が 1 回保存されることを示します。
設定情報は現行のデバッグ・セッションの終了時に保存されますが、SET SAVE SETTINGS について保存される値は NOAUTO です。
これにより、現行デバッグ・セッションの設定値を保存し、後続のデバッグ・セッションの終了時に設定値が更新されないようにすることができます。
- *
- 終了時に設定、ブレークポイント、モニター指定を保存するためにデフォルトのファイル名が使用されることを示します。
デフォルト名は、設定の場合、userid.DBGTOOL.SAVESETS であり、
ブレークポイントおよびモニター指定の場合、userid.DBGTOOL.SAVEBPS です。
デフォルト名を変更するには、EQAOPTS を使用します。
- FILE setfileid
- 設定値の保管および復元に使用されるデータ・セット名を示します。
このコマンドを実行する前に、データ・セットを用意しておく必要があります。
z/OS では、setfileid は、DD 名、
完全修飾データ・セット名 (アポストロフィ (') なし)、または HFS パスおよびファイル名です。
CICS では、setfileid は、
完全修飾データ・セット名、または HFS パスおよびファイル名です。
setfileid の長さが 9 文字未満で、ピリオドが含まれていない場合、Debug Tool はそれを DD 名と見なします。
それ以外の場合は、完全修飾データ・セット名と見なします。
バッチ・モードでは、データ・セット名は無視されます。
設定値の復元および保存に使用するデータ・セット名を示すには、INSPSAFE DD ステートメントを使用します。
このデータ・セットは、レコード・フォーマット (RECFM) が VB で、レコード長 (LRECL) が 3204 以上の
順次データ・セットでなければなりません。
- FILE bpfileid
- ブレークポイントおよびモニター指定の保管に使用されるデータ・セットを示します。
このコマンドを実行する前に、データ・セットを用意しておく必要があります。
z/OS では、bpfileid は、DD 名、
完全修飾データ・セット名 (アポストロフィ (') なし)、または HFS パスおよびファイル名です。
CICS では、bpfileid は、
完全修飾データ・セット名、または HFS パスおよびファイル名です。
setfileid の長さが 9 文字未満で、ピリオドが含まれていない場合、Debug Tool はそれを DD 名と見なします。
それ以外の場合は、完全修飾データ・セット名と見なします。
バッチ・モードでは、データ・セット名は無視されます。
ブレークポイントおよびモニター指定の保存に使用するデータ・セットの名前を示すには、INSPBPM DD ステートメントを使用します。
このデータ・セットは PDS または PDSE (PDSE を推奨) でなければならず、メンバー名は指定できません。
このデータ・セットのレコード・フォーマット (RECFM) は VB で、レコード長 (LRECL) は 3204 以上でなければなりません。
Debug Tool は、ロード・モジュール名であるメンバー名をエンクレーブの開始時に割り当てます。
各エンクレーブのブレークポイントは、PDS または PDSE の個々のメンバーに保存されます。
保存されたブレークポイント、LDD 指定、およびモニター指定を破棄する場合は、
エンクレーブを開始したロード・モジュールの名前を持つメンバーを削除します。
メンバーの内容は変更しないでください。
使用上の注意
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
SET SCREEN コマンド (フルスクリーン・モード)
画面上の情報の表示方法を制御します。初期設定値は ON です。
- CYCLE
- ウィンドウ構成を、順序どおりに切り替えます。
- integer
- ウィンドウ構成を選択する、1 から 6 までの範囲の整数。初期設定値は、1 です。
- LOG、MONITOR、SOURCE、または MEMORY
- 選択された構成内の、ウィンドウ割り当ての順序 (左から右、上から下) を指定します。オブジェクトは 3 つまでしか指定することはできません。指定されたオブジェクトはすべて異なっている
必要があります。MEMORY および LOG の両方を同じシーケンスに指定することはできません。
- ON
- Debug Tool フルスクリーン・サービスを起動します。
- OFF
- 行モードを活動化します。このモードは、端末がサポートされるフルスクリーン装置ではない場合に強化されます。
使用上の注意
- CYCLE も integer も指定されなくても、構成の
選択に変更はありません。ウィンドウが何も指定されない場合、構成へのウィンドウの割り当てにおいて、変更はありません。
- TSO で VTAM 端末を使用してフルスクリーン・モードでデバッグしているときに SET SCREEN OFF を入力すると、セッションは TSO 端末を使用して行モードに入ります。その後に、TSO 端末から SET SCREEN ON を入力すると、制御は VTAM 端末を使用してフルスクリーン・モードに戻ります。
- VTAM 端末を使用して
フルスクリーン・モードでデバッグを行っているとき、SET SCREEN OFF は CICS フルスクリーン・モード
および z/OS バッチでは無視されます。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- Debug Tool ユーザーズ・ガイド
SET SCROLL DISPLAY コマンド (フルスクリーン・モード)
スクロール・フィールドが、フルスクリーン・モードでの操作時に表示されるかどうかを制御します。初期設定値は ON です。
- ON
- スクロール・フィールドを表示します。
- OFF
- スクロール・フィールドの表示を抑止します。
例
スクロール・フィールドの表示が抑止されるように指定します。
SET SCROLL DISPLAY OFF;
SET SEQUENCE コマンド (PL/I)
コマンド・ファイルまたは設定ファイルの 72 桁目以降のデータをシーケンス番号として Debug Tool
が解釈するかどうかを制御します。
- ON
- コマンド・ファイルまたは設定ファイルの 73 桁目から 80 桁目
のシーケンス番号を許可します。
- OFF
- コマンド・ファイルまたは設定ファイルのシーケンス番号を許可しません。
使用上の注意
73 桁目から 80 桁目にシーケンス番号がある場合には、
コマンド・ファイルまたは設定ファイルの最初のコマンドとして、SET SEQUENCE ON
コマンドを入力する必要があります。
すると、Debug Tool は 1 桁目から 72 桁目を処理して、72 桁目より後を無視します。
SET SOURCE コマンド
ソース・ファイル、コンパイラー・リスト、または分離デバッグ・ファイルを 1 つ以上のコンパイル単位に関連付け、そのコンパイル単位がアクティブなときにソース・ファイルまたはリストを表示するかどうかを指定します。
- ON
- コンパイル単位がアクティブなときに、コンパイル単位のソースまたはリストを表示します。
- OFF
- ファイルが表示されないように指定します。
- cu_spec
- 有効なコンパイル単位の指定。複数のコンパイル単位を、同じソース、リストまたは分離デバッグ・ファイルと関連付けることができます。
- fileid
- コンパイル単位用に使用するソース、リスト、または分離デバッグ・ファイルを識別します。指定するファイルは、固定長のブロック形式であることが必要です。連結されたデータ・セットを指定することはできません。
z/OS では、fileid は DD 名、
完全修飾区分データ・セットとメンバーの名前、順次ファイル、または HFS パスおよびファイル名です。
CICS では、fileid は、完全修飾データ・セット名、または HFS パスおよびファイル名です。
setfileid の長さが 9 文字未満で、ピリオドが含まれていない場合、Debug Tool はそれを DD 名と見なします。
Debug Tool は、それが割り振られているかどうかを検査します。
割り振られていなければ、fileid はデータ・セット名と想定されます。
fileid は、コンパイル単位のデフォルト・ファイル ID の代わりに使用されるファイル ID を指定します。
Debug Tool がまだ fileid を認識していない場合 (認識させるには、前の SET SOURCE コマンドを使用する)、
またはデフォルトの fileid が有効でない場合は、有効な fileid が必要となります。
fileid に割り振られたデータ・セットが C、C++、または Enterprise PL/I ソースであり、ライブラリー・システム内の
ソース・ファイルへのアクセスに EQAOPTS SUBSYS=ssss オプションが使用されている場合は、fileid を DD 名にすることはできません。
使用上の注意
- C または C++ プログラムを、DEBUG コンパイラー・オプションの FORMAT(DWARF) サブオプションを指定してコンパイルした場合は、.dbg ファイルの新しい場所を指定するのに SET SOURCE コマンドを使用することはできません。ファイルの新しい場所を指定するには、EQADEBUG DD ステートメントまたは EQAUEDAT ユーザー出口を使用します。
- 現在実行中のコンパイル単位に対して SET SOURCE が出されると、ファイルが存在するかどうかのテストが実行されます。コンパイル単位が現行のコンパイル単位でない 場合は、このテストはコンパイル単位が現行になるまで実行されません。ソースに関連付けられたファイルが存在しない場合もありますが、このファイルを必要とする関数が実行されないうちは、存在しないファイルについてのエラー・メッセージは表示されません。
- Debug Tool に現在認識されていないコンパイル単位を識別する cu_spec を指定すると、Debug Tool はその特定の cu_spec を使用して据え置き LOADDEBUGDATA コマンドを探します。
該当する据え置き LOADDEBUGDATA コマンドを検出すると、Debug Tool は fileid をその据え置き LOADDEBUGDATA コマンドに関連付けます。コンパイル単位が出現してアクティブになると、Debug Tool は指定されたファイルから EQALANGX データをロードします。
- SET SOURCE ON コマンドは、SET DEFAULT LISTINGS コマンドより高い優先順位をもちます。
- COBOL の場合、cu_spec に大/小文字の区別がある
名前が含まれているときは、その名前を、引用符 (") またはアポストロフィ (') で囲んでください。
- SET SOURCE コマンドは、逆アセンブリー・コンパイル単位には影響しません。しかし、コンパイル単位が LOADDEBUGDATA コマンドのオペランドとして指定されると、保存して後で適用できます。
- ファイル名が 1 行に収まらない場合、ファイルの末尾にハイフンを付けます。
例
- コンパイル単位 prog1 と関連付けられた COBOL リストを、DD 名 mainprog で検出するように指示します。TSO セッションで、リスト・データ・セットを次のように割り振ります。
ALLOCATE FI(MAINPROG) DA('JSMITH.COBOL.LISTING(PROG1)') SHR Debug Tool を起動し、以下を実行します。
SET SOURCE ON (prog1) mainprog;
prog1 がデバッグ・セッション中に現行状態になると、Debug Tool は、JSMITH.COBOL.LISTING(PROG1) 内の
リストを検索します。
- コンパイル単位 prog1 と関連付けられた COBOL リストを、DD 名 mainprog で検出するように指示します。TSO セッションで、以下を実行します。
SET SOURCE ON (prog1) JSMITH.COBOL.LISTING(PROG1)
これにより、ALLOCATE コマンドを実行しなくても直前の例と同じ結果になります。
- コンパイル単位 "/u/userid/code/oefun.c" と関連付けられたソースを、パスおよびファイル名 "/u/userid/code/oefun.c" の下の HFS で検出するように指示します。
SET SOURCE ON ("/u/userid/code/oefun.c") /u/userid/code/oefun.c;
- コンパイル単位 AVER と関連付けられた PL/I リスト・ファイルを、MYID.PLI.LISTING(AVER) で検出するように指示します。
SET SOURCE ON (AVER) myid.pli.listing(AVER) ;
- コンパイル単位 JSMITH.C.SOURCE(myprog) と関連付けられた C ソースを、PDS およびメンバー
CODE.CLIB.SOURCE(myprog) で検出するように指示します。
SET SOURCE ON ("JSMITH.C.SOURCE(myprog)") CODE.CLIB.SOURCE(myprog)
- SET LONGCUNAME OFF コマンドを入力して、短い CU 名を使用することを示してから、コンパイル単位 JSMITH.C.SOURCE(myprog) と関連付けられた C ソースは、PDS およびメンバー CODE.CLIB.SOURCE(myprog) で検出するように指示します。
SET LONGCUNAME OFF;
SET SOURCE ON (myprog) CODE.CLIB.SOURCE(myprog)
- PL/I プログラムは、Enterprise PL/I for z/OS バージョン 3.5 (APAR PK35230 および PK35489 用の PTF を適用済み) より前のバージョンの Enterprise PL/I コンパイラーでコンパイルされます。コンパイル単位 JSMITH.PLI.SOURCE(myprog) に関連付けられた PL/I ソースは、PDS およびメンバー CODE.PLILIB.SOURCE(myprog) で検出するように指示します。
SET LONGCUNAME OFF;
SET SOURCE ON (myprog) CODE.PLILIB.SOURCE(myprog)
- PL/I プログラムは、以下のいずれかのコンパイラーによってコンパイルされ、下の環境で実行されます。
- Enterprise PL/I for z/OS バージョン 3.6 以降
- APAR PK35230 および PK35489 に対応する PTF が適用された Enterprise PL/I for z/OS バージョン 3.5 コンパイラー
- 言語環境プログラム・バージョン 1.6 から 1.8 (APAR PK33738 用の PTF を適用済み)、またはそれ以降
コンパイル単位 JSMITH.PLI.SOURCE(myprog) に関連付けられた PL/I ソースは、PDS およびメンバー CODE.PLILIB.SOURCE(myprog) で検出するように指示します。
SET SOURCE ON (myprog) CODE.PLILIB.SOURCE(myprog)
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET SUFFIX コマンド (フルスクリーン・モード)
フルスクリーン・モード時に、ソース・ウィンドウの右端で、頻度カウントの
表示を制御します。初期設定値は ON です。
- ON
- 接尾部欄を表示します。
- OFF
- 接尾部欄の表示を抑止します。
例
接尾部欄が表示されることを指定します。
SET SUFFIX ON;
SET TEST コマンド
呼び出し時に指定される初期の TEST ランタイム・オプションを指定変更します。初期設定値は ALL です。

- test_level
- 例外条件により、Debug Tool が、ブレークポイントがなくても制御を獲得できるように
指定します。括弧内はオプションです。
Test_level には、以下を組み込むことができます。
- ALL
- 次のいずれかの条件が発生した場合に、Debug Tool が制御を獲得することを指定します。
- アテンション割り込みが発生する場合。
- 言語環境プログラム・エンクレーブが異常終了する場合、またはプログラムを言語環境プログラム・ランタイムなしで実行しているときに MVSまたは CICS ABEND がある場合。
- COBOL STOP RUN、PL/I STOP、または EXEC CICS RETURN により言語環境プログラムが正常終了する場合。
- 言語環境プログラムが重大度 1 以上の条件を生成する場合。FINISH、CEE066、または CEE067 スレッド終了条件が言語環境プログラムにより生成された場合に、EQAOPTS オプション・ファイルに THREADTERMCOND オプションが指定されていると、Debug Tool は制御を獲得しません。このオプションが指定されたかどうかを判別するには、システム管理者に問い合わせてください。
条件が発生した場合にその条件にブレークポイントが存在していると、Debug Tool はブレークポイントに指定されているコマンドを実行します。条件が発生したときに、その条件にブレークポイントが存在していない場合、またはアテンション割り込みが発生した場合には、Debug Tool は以下のいずれかを行います。
- 対話モードの場合、Debug Tool は、コマンド・ファイル (定義されていれば) からコマンドを読み取るか、あるいはユーザーにプロンプトを出してコマンド入力を要求します。
- 非対話式モードの場合、Debug Tool は、コマンド・ファイルからコマンドを読み取ります。
- ERROR
- 以下の条件が発生した場合に限り、ユーザー定義のブレークポイントが
なくても Debug Tool に制御が渡されることを指定します。
- 言語環境プログラム・ランタイムなしで実行しているときに発生する MVS または CICS の ABEND。
- C の場合
- アテンション割り込み
- 重大度 2 以上の定義済み言語環境プログラム条件
- SIGUSR1、SIGUSR2、SIGINT あるい
は SIGTERM 以外の C 条件
- COBOL の場合:
- アテンション割り込み
- 重大度 2 以上の定義済み言語環境プログラム条件
- PL/I の場合:
- PL/I または Debug Tool のいずれかに向けられたアテンション割り込み
- 重大度 2 以上の定義済み言語環境プログラム条件
上記の条件に対してブレークポイントが定義してある場合、ブレークポイントでの実行を指定したコマンドを実行します。コマンドが指定されていない場合、Debug Tool は、コマンド・ファイルから
コマンドを読み取るか、対話モードでコマンドを入力するように求めるプロンプトを
出します。
- NONE
- Debug Tool が制御を得るのは、アテンション割り込みのとき、または、ブレークポイントを設定
してある条件が発生したときのみ、と指定します。該当の条件に対してブレークポイントが存在する場合には、ブレークポイントで指定されているコマンドが実行されます。
使用上の注意
FINISH、CEE066、または CEE067 スレッド終了条件が言語環境プログラムにより生成されたときに、Debug Tool が停止しないように EQAOPTS オプション・ファイルに THREADTERMCOND オプションが指定されていれば、Debug Tool は、これらの条件が生成された場合に制御を獲得しません。これらの条件が生成された場合に Debug Tool が制御を獲得するようにしたければ、AT OCCURRENCE ブレークポイントを設定するか、または THREADTERMCOND オプションを変更して、Debug Tool が制御を獲得することを許可できます。
例
- ブレークポイントが存在しないときに、アテンション割り込みまたは例外
のみで、Debug Tool が制御を獲得することを示します。
SET TEST ERROR;
- ある条件でブレークポイントが存在するといったことがなければ、どのような条件が存在しても Debug Tool は制御を獲得しないことを示します。
SET TEST NONE;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET WARNING コマンド (C、C++、COBOL、および PL/I)
Debug Tool 警告メッセージの表示と、C、C++、および PL/I プログラムに例外が反映されるかどうかを制御します。COBOL プログラムの場合は、最適化コードをデバッグ中に変数を変更する機能を制御します。初期設定値は ON です。
- ON
- Debug Tool の警告メッセージおよび、除算チェックなどの条件を
診断メッセージで表示します。COBOL プログラムの場合は、最適化コードをデバッグ中の変数の変更を禁止します。
- OFF
- Debug Tool 警告メッセージを抑止し、条件によりプログラムで例外が発生します。COBOL プログラムの場合は、最適化コードをデバッグ中の変数の変更を許可します。
ユーザーとの対話によって起こる例外は、タイプ・ミスが原因である可能性があり、アプリケーション・プログラムに渡されるようにする意図はないかもしれません。ただし、プログラム内で実際の例外を扱う必要が出てくることがあります。例えば、あるエラー・リカバリー・コードをテストするなどです。(TRIGGER は、例外情報をセットアップしないため、常にこれに
該当するとは限りません。)
使用上の注意
- このコマンドは、リモート・デバッグ・モードで使用できます。
- Debug Tool は、次のような C 条件を検出します。
- ゼロでの除算。
- 定義された配列の境界外の配列添え字
- 列挙型データ型の変数への整数値の代入 (整数値が列挙型データ型の
列挙型定数のどの整数とも対応していない場合)
- Debug Tool は、次のような PL/I 計算条件を検出します。
- 無効の 10 進データ
- CHARACTER から BIT への変換エラー
- ゼロでの除算。
- 可変ストリングでの無効な長さ
-
以下のいずれかのコンパイラーによってコンパイルされた最適化プログラムで、変数を変更することができます。
- Enterprise COBOL for z/OS バージョン 4.1
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 2 以降
- Enterprise COBOL for z/OS and OS/390 バージョン 3 リリース 1 (APAR PQ63235 インストール済み)
- COBOL for OS/390 & VM、バージョン 2 リリース 2
- COBOL for OS/390 & VM バージョン 2 リリース 1 (APAR PQ63234 インストール済み)
しかし、結果は予想できません。より予測可能な結果を得るには、プログラムを Enterprise COBOL for z/OS バージョン 4.1 でコンパイルし、TEST コンパイラー・オプションの EJPD サブオプションを指定します。ただし、初期設定するために VALUE 文節を指定して宣言された変数は、変更できません。
- Debug Tool により条件式 (例えば、AT CHANGE コマンドの WHEN 節の condition) が評価されたときに、その条件式が無効であれば、Debug Tool は以下のいずれかの処置を行います。
- SET WARNING が ON に設定されている場合、Debug Tool は停止して、条件式の評価ができなかったことを示すメッセージを表示します。Debug Tool で行う処置を示すために、コマンドを入力する必要があります。
- SET WARNING が OFF に設定されている場合、Debug Tool は停止せず、条件式の評価ができなかったことを示すメッセージも表示しません。Debug Tool はプログラムの実行を継続します。
例
条件が診断メッセージになるように指定します。
SET WARNING ON;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
SET コマンド (COBOL)
SET コマンドは、値を COBOL 参照に割り当てます。SET キーワードを省略することはできません。
- reference
- 有効な Debug Tool COBOL 参照。
- literal
- 有効な COBOL 数値リテラル定数。
- TRUE
- レベル 88 reference に割り当てられた値。
値 TRUE を割り当てるためには、言語環境プログラム APAR PK30521 用の PTF が z/OS バージョン 1 リリース 6、バージョン 1 リリース 7、およびバージョン 1 リリース 8 にインストールされていることが必要です。
使用上の注意
- 値 TRUE は、レベル 88 reference にのみ割り当てることができます。
- 計算条件またはアテンション割り込みによって Debug Tool を呼び出した場合、変数の
値の設定に代入ステートメントを使用しても、期待した結果は得られない
可能性があります。これは、ステートメント境界での変数値とは反対に、ステートメント内の変数値のあいまいさによるものです。
- SET では、値を単一の受信先にのみ代入します。COBOL の場合とは異なり、複数の受信先変数はサポートされません。
- COBOL SET コマンドの形式 1、4、および 5 のみがサポートされます。
- 指標名は、プログラム変数のみが使用可能です (OCCURS は、Debug Tool セッション変数にサポートされないため)。
- COBOL ADDRESS OF 識別名は、LINKAGE SECTION 変数である
識別名についてのみサポートされます。さらに、受信側としての COBOL ADDRESS OF は、レベル 1 または 77、送信側としての COBOL ADDRESS OF は 66 または 88 以外のレベルであること
が必要です。
- Debug Tool には SET コマンドで
使用できる 16 進定数があり、16 進値は、その前に "H" を付けて、引用符 (") または
アポストロフィ (') で区切ります。
- PLAYBACK ENABLE コマンドの DATA オプションが有効な場合、SET コマンドを使用して、セッション変数のみに値を代入することができます。プログラム変数に値を代入することはできません。
- 最適化 COBOL プログラムのデバッグをする場合、SET コマンドを使用して値をプログラム変数に代入できるのは、最初に SET WARNING OFF コマンドを入力するときのみです。SET コマンドのソースまたはターゲットは最適化プログラムによって廃棄された変数を参照できません。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
Debug Tool SET コマンドの実行できる移動
次の表に、Debug Tool SET コマンドで実行できる移動を
示します。
| ソース・フィールド |
|
受け取りフィールド |
| AO |
IN |
IDI |
PTR |
ED |
BI |
ID |
OR |
| Address Of (AO) |
Y |
|
|
Y |
|
|
|
|
| Index Name (IN) |
|
Y |
Y |
|
Y |
Y |
Y |
|
| Index Data Item (IDI) |
|
Y |
Y |
|
|
|
|
|
| Pointer Data Item (PTR) |
Y |
|
|
Y |
|
|
|
|
| Address Hex Literal1 |
Y |
|
|
Y |
|
|
|
|
| NULL (NUL) |
Y |
|
|
Y |
|
|
|
|
| Integer Literal |
|
Y2 |
|
|
|
|
|
|
| External Decimal (ED) |
|
Y |
|
|
|
|
|
|
| Binary (BI) |
|
Y |
|
|
|
|
|
|
| Internal Decimal (ID) |
|
Y |
|
|
|
|
|
|
| OBJECT REFERENCE (OR) |
|
|
|
|
|
|
|
Y |
注:
- 1
- 16 進文字のみ有効です。引用符 (") またはアポストロフィ (') で区切られ、その前に H が付きます。
- 2
- 指標名は、指標値に変換されます。
SHOW 接頭部コマンド (フルスクリーン・モード)
SHOW 接頭部 コマンドで、行内の相対ステートメント (C の場合) または
相対 verb (COBOL の場合) に、頻度カウントが接尾部域に一時的に
示されるように指定します。
- integer
- 行内の相対ステートメント (C の場合)、または相対 verb (COBOL の場合) を
選択します。デフォルト値は 1 です。最適化 COBOL プログラムでは、デフォルト値は、最適化プログラムによって廃棄されなかった最初の実行可能ステートメントです。
使用上の注意
- SET SUFFIX は現在 OFF であり、SHOW 接頭部
コマンドで、それを強制的に ON にします。
- 接尾部表示は、次の対話で、通常どおりになります。
- SHOW 接頭部 コマンドはログに記録されません。
例
行内の 3 番目のステートメントまたは verb の頻度カウントを
表示します (ステートメントが検出される行の接頭部域に入力します)。
SHOW 3
キーワードと整数の間には、区切り文字としてのスペースは必要ありません。したがって、SHOW 3 は SHOW3 と同じです。
STEP コマンド
STEP コマンドは、1 つ以上のプログラム・ステートメント
を実行しながら、Debug Tool が動的にプログラムをステップスルーすることを可能にします。フルスクリーン・モードでは、STEP コマンドは、アニメーション表示の実行を行います。
STEP は、次のうち 1 つ以上の条件を検出した場合は終了します。
- ユーザーのアテンション割り込み
- ブレークポイントが検出される
- プログラムの正常終了または異常終了
- integer
- 実行するステートメントの数を示します。デフォルトは 1 です。integer が 2 以上である場合、そのステートメントは、同じキーワード
およびカウント 1 で、STEP が何度も繰り返されたように実行されます。実行の速度、すなわちステップ
のペース は、SET PACE コマンド
によって、あるいはプロファイル・パネルのビジュアル・トレースの
ペース・フィールドによって設定されます。
- *
- プログラムが、割り込まれるまで実行されるように指定します。STEP * は、GO と同等です。
- INTO
- いずれかの呼び出されたプロシージャーまたは機能にステップイントゥ します。これは、ステップが、呼び出されたプロシージャーまたは機能内で続行するということです。
- OVER
- いずれかのプロシージャー呼び出しまたは機能呼び出しをステップオーバー します。このオペランドを指定すると、呼び出されたプロシージャーおよび機能ではフルスピードで
実行され (アニメーション処理は行われません)、戻ったときに STEP モードが再開され
ます。
逆アセンブルされたプログラムをデバッグしている場合、呼び出し側プログラムにブレークポイントを設定したことを確認します。ブレークポイントがない場合は、Debug Tool は戻り時に
STEP モードを再開できず、アプリケーションは終了するまで実行を続けます。
- RETURN
- 指定したレベル数だけ戻り 点にステップ・バックし、該当するプロシージャー呼び出しまたは
機能呼び出しの後にあるステートメントで停止します。このオペランドを指定すると、現行のプロシージャーまたは機能の残りが、フルスピードで実行され (アニメーション処理は行われません)、呼び出されたプロシージャー
または機能に対し、戻ったときに STEP モードが再開されます。
非言語環境プログラム の COBOL
プログラムまたは逆アセンブルされたプログラムをデバッグしている
場合は、Debug Tool が戻り点を識別できないので、STEP RETURN コマンドを使用しないでください。
代わりに、呼び出し側プログラムにブレークポイントを設定して、GO コマンドを入力します。
使用上の注意
例
- 次の 25 個のステートメントをステップスルーをして、アプリケーション・サブルーチンまたは機能が呼び出される場合に、サブルーチンまたは機能へのステップイントゥを続行します。
STEP 25 INTO;
- 次の 25 個のステートメントをステップスルーをします。ただし、アプリケーション・サブルーチンまたは機能が呼び出され
ると、サブルーチンまたは機能が戻るまで、アニメーションなしでフルスピード実行に切り替わります。
STEP 25 OVER;
- 呼び出しの 3 つのレベルを介して、フルスピードで戻ります。
STEP 3 RETURN;
STORAGE コマンド
STORAGE コマンドによって、ストレージの変更ができます。ストレージを変更すると結果が予測できないので、注意してください。
- address
- 変更するストレージの第 1 バイトのアドレス。
- reference
- ストレージ・ロケーションを変更する変数。アセンブラーまたは逆アセンブリーでは、このオペランドがストレージ・ロケーションを示すアセンブラー式として指定される場合があります。
- 'reference'
- ストレージ・ロケーションを変更する非言語環境プログラム の COBOL 変数。非言語環境プログラム の COBOL では、参照はアポストロフィ (') で囲む必要があります。
- offset
- 参照のアドレス、またはユーザーが指定したアドレスが指すメモリー位置からの開始オフセットを示すバイト数を 10 進数または 16 進数で表したもの。
offset は、負の数値にすることができます。
offset が 16 進定数の場合は、上の address と同じ構文規則に従う必要があります。デフォルトは 0 です。
- length
- 変更するバイト数 (10 進数)。
これは、value の長さと同じでなければなりません。
- value
- 保管する値。value は、以下のいずれかの方法で表記する必要があります。
- アドレス。
- アポストロフィ (') で囲まれ、前に "X" が付く 16 進値。以下のプログラム言語では、異なる表記を使用することもできます。
- PL/I の場合は、アポストロフィ (") または引用符 (') で囲んだ 16 進値の後に PX を続ける。
- アセンブラー、COBOL、または逆アセンブリーの場合は、引用符 (") で囲んだ 16 進値の前に "X" を付ける。
- 10 進数の値。10 進数の値の場合、4 バイトが変更されます。例えば、STORAGE (H'12345678') = 3 は、STORAGE(H'12345678') =
H'00000003' と同じです。
- 各プログラム言語に適した文字ストリング表記を使用した、またはすべてのプログラム言語ではストリングを引用符 (") で囲んで使用できる、最長 256 バイトの文字ストリング。
使用上の注意
- パラメーターが 2 つだけ指定された場合、Debug Tool は 2 番目のパラメーターを長さと見なします。
- パラメーターが 1 つだけ指定された場合、Debug Tool は、オフセットが 0 で、長さが value の長さに等しいと見なします。
- STORAGE コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
- address に 8 桁を超える有効数字を指定するか、または
reference が 64 ビットのアドレス可能ストレージを参照している場合、Debug Tool は
ストレージ・ロケーションが 64 ビットのアドレス可能ストレージであると見なします。それ以外の場合、Debug Tool はストレージ・ロケーションが 31 ビットのアドレス可能ストレージであると見なします。
- reference がポインターの場合、Debug Tool は、そのポインターが指定するアドレスにある内容を変更します。
例
- すべてのプログラム言語の場合、次のコマンドを入力して、アドレス X'12345678' で、ストレージの 2 バイトを変更します。
STORAGE (X'12345678') = 0x1234;
- C の場合、次のコマンドを入力して、アドレス X'12345678' で、ストレージの 2 バイトを変更します。
STORAGE (0x12345678) = 0x1234;
- COBOL の場合、次のコマンドを入力して、アドレス X'12345678' で、ストレージの 4 バイトを変更します。
STORAGE (H'12345678') = H'1234'
コマンドは、次のように変更されます。
STORAGE (H'12345678') = H'00001234'
- COBOL の場合、次のコマンドを入力して、アドレス X'12345678' で、ストレージの 6 バイトを変更します。
STORAGE (H'12345678') = X'C1C1C1C1C1C1'
- PL/I の場合、次のコマンドを入力して、アドレス X'12345678' で、ストレージの 6 バイトを変更します。
STORAGE ('12345678'PX) = 'C1C1C1C1C1C1'X
- PL/I の場合、次のコマンドを入力して、アドレス X'12345678' で、ストレージの 23 バイトを変更します。
STORAGE ('12345678'PX) = 'aaaaaaaaaaaaaaaaaaaaaaa'
- 次のコマンドを入力して、MYVAR でオフセット 2 から始まるストレージの 10 バイトを変更します。
STORAGE (MYVAR, 2, 10) = 'new text: ';
- 次のコマンドを入力して、アドレス X'20CD0' でオフセット 10 から始まるストレージの 4 バイトを変更します。
STORAGE ('20CD0'PX, 10, 4) = 99;
- 次のコマンドを入力して、MYVAR でオフセット 0 から始まるストレージを、変数 MYVAR の長さと同じバイト数だけ変更します。
STORAGE (MYVAR) = 10;
- C の場合、アドレス 1A3BE910 が指すストレージをオフセット -20 から 20 バイトだけ更新します。
STORAGE (0x1A3BE910,-20,20) = 'first and last name ';
- アドレス 162F0 が指すストレージの 20 バイトを更新します。
言語は COBOL です。
オフセットは 0 です。
STORAGE ( H'162F0', 20 ) = 'clear that string ' ;
- アセンブラーの場合、アドレス 00020CD0 が指すストレージをオフセット 16 から 4 バイトだけ更新します。
オフセットは 16 進定数として指定されます。
STORAGE ( X'00020CD0', X'10', 4 ) = 5 ;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
switch コマンド (C および C++)
switch コマンドにより、switch 式の値に従って、switch 本体内の
異なるコマンドに制御権を移動することができます。switch、case、および default キーワードは、小文字でなければならず、省略することができません。
- expression
- 有効な Debug Tool の C の式。
- case_expression
- 有効な文字またはオプションで符号付きの整数定数。
- command
- 有効な Debug Tool コマンド。
switch 式の値は、case 文節ごとの式の値と比較されます。一致する値が検出されると、制御は、一致する値を含む case 文節のコマンドに渡されます。一致する値が検出されず、default 文節が switch 本体のどこかで表示される場合、制御は、default 文節のコマンドに渡されます。これ以外の場合、制御は、switch 本体の後に続いているコマンドに渡ります。
制御が switch 本体のコマンドに渡ると、break コマンドが検出されるまで、あるいは switch 本体内の最後のコマンドが実行されるまで、制御は switch 本体
から戻りません。
使用上の注意
- 宣言は、switch コマンド内では許可されません。
- switch コマンドの最後の文字をセミコロンにすることはできません。右中括弧の後のセミコロンは、NULL コマンドとして扱われます。
- このコマンドは、C 言語での switch ステートメントと似ていますが、式については Debug Tool の制限に準拠します。
- 重複した case_expression 値は、サポートされません。
- switch コマンドは、記録されたステートメントを PLAYBACK コマンドを使用して再生する間は使用できません。
例
- 次の switch コマンドには、いくつかの case 文節
と 1 つの default 文節が含まれます。文節ごとに、関数呼び出しおよび break コマンドが含まれています。break コマンドは、switch の本文内で、後続のコマンドに制御権が移らないようにします。
key に値 '/' があると、switch コマンド
は、関数 divide を呼び出します。戻り時に、制御は、switch 本体の後に続いているコマンドに渡ります。
char key;
printf("Enter an arithmetic operator\n");
scanf("%c",&key);
switch (key)
{
case '+':
add();
LIST (key);
break;
case '-':
subtract();
LIST (key);
break;
case '*':
multiply();
LIST (key);
break;
case '/':
divide();
LIST (key);
break;
default:
printf("Invalid key\n");
break;
}
- 以下の例では、break コマンドは存在しません。c の値が、'A' と等しければ、3 つのカウンターはすべて、増加します。c の値が 'a' に等しければ、lettera および total が増加
します。total だけが増加するのは、c が 'A' にも 'a' にも等しくない
場合です。
char text[100];
int capa, i, lettera, total;
for (i=0; i < sizeof(text); i++) {
switch (text[i]) {
case 'A':
capa++;
case 'a':
lettera++;
default:
total++;
}
}
SYSTEM コマンド (z/OS)
SYSTEM コマンドにより、Debug Tool セッション時に
TSO コマンドを出すことができます。SYSTEM キーワードは、SYS としてしか省略できません。
- system_command
- パラメーターを必要としない、有効な TSO システム・コマンドまたは CLIST 名。
使用上の注意
- システム・コマンドまたは CLIST 呼び出しの一部分として指定できるパラメーターはありません。
パラメーターが必要な場合に非対話式に実行するには、CLIST に完全な呼び出しを
入力してから、TSO または SYSTEM コマンドを使用して、その CLIST (パラメーターなしのもの) を呼び出す必要があります。
- SYSTEM コマンドで、新規に対話式 Debug Tool セッションを
始めることはできません。
- TSO で対話式に操作中に、コマンドを繰り返し入力できるモードに切り換える
方法はありません。しかし、CLIST を使用して、独自の繰り返し手順を作成することは可能です。
- SYSTEM を使用して CICS コマンドを出すことはできません。
例
- ユーザー・カタログのすべてのデータ・セットをリストします。
SYSTEM LISTCAT;
- 一時的に ISPF モードに入ります。
SYSTEM PDF;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
TRIGGER コマンド
TRIGGER コマンドは、Debug Tool で AT 条件を
発生したり、あるいは、指定されたプログラム言語条件をプログラムで
発生させます。

- condition
- 有効な条件または例外。現行のプログラム言語設定に従って、このコードは以下のタイプのコードのいずれかにすることができます。
- 言語環境プログラムのシンボリック・フィードバック・コード
- 言語指向のキーワードまたはコード
- アプリケーションが言語環境プログラム・ランタイムなしに実行された場合、
下記に示す ABEND コードのいずれか
指定の条件を処理するための活動状態になっている条件ハンドラーがない場合、デフォルト条件ハンドラーは、正常完了を待たずにプログラムを終了させることができます。
次に、C の条件定数を示します。大文字を使用し、省略なしの記述が必要です。
|
SIGABND
SIGABRT
SIGFPE
|
SIGILL
SIGINT
SIGIOERR
SIGSEGV
|
SIGTERM
SIGUSR1
SIGUSR2
|
COBOL の条件定数はありません。その代わりに、言語環境プログラムのシンボリック・フィードバック・コード (例えば、CEE347) を
使用しなければなりません。
PL/I 条件定数の構文および認められる省略形については ON コマンド
を参照してください。
言語環境プログラム・ランタイムなしで実行している場合は、以下のコードのいずれかを使用してください。
- MVS システムおよびユーザー ABEND を表すコード Sxxx および Uxxx。
このケースで、xxx は、ABEND コードを表す 3 桁の 16 進数字です。
- CICS ABEND コードを表す任意の 4 文字ストリング。
- cu_spec
- 有効なコンパイル単位の指定。
- entry_name
- 有効な外部入り口点名定数またはゼロ (0)。0 を指定できるのは、現行のプログラム言語設定が C または PL/I の場合のみです。
- reference
- 現行のプログラム言語で有効な Debug Tool 参照。
- %STORAGE
- AT CHANGE の対象を選択する代替方法となる組み込み関数。
- address
- 変更の発生を監視するストレージの開始アドレス。
- length
- 変更の発生を監視するストレージのバイト数。これは、正の整数定数でなければなりません。デフォルトは 1 です。
- load_spec
- 有効なロード・モジュール指定。
- block_spec
- 有効なブロック指定。
- statement_label
- 有効なソース・ラベル定数を記入します。
- stmt_id_spec
- 有効なステートメント ID 指定。
使用上の注意
- FINISH、CEE066、または CEE067 スレッド終了条件が言語環境プログラムにより生成されたときに、Debug Tool が停止しないように EQAOPTS オプション・ファイルに THREADTERMCOND オプションが指定されていれば、Debug Tool は、これらの条件が生成された場合に制御を獲得しません。これらの条件が生成された場合に Debug Tool が制御を獲得するようにしたければ、AT OCCURRENCE ブレークポイントを設定するか、または THREADTERMCOND オプションを変更して、Debug Tool が制御を獲得することを許可できます。
- AT TERMINATION は、TRIGGER コマンドによって発生させることはできません。
- エンクレーブは、TRIGGER コマンドで停止することはできません。
- 記録されたステートメントを PLAYBACK コマンドを使用して再生している場合、TRIGGER コマンドを使用することはできません。
例
最初の例では、以下の差に注意してください。
- ブレークポイントのトリガー (TRIGGER AT OCCURRENCE CEE347)。これは、そのブレークポイントに関連した Debug Tool コマンドを実行します。条件は発生しません。
- 条件のトリガー (TRIGGER CEE347)。これは、この条件を発生させ、対応する system アクションを引き起こします。対応するシステム・アクションは、異常事態処理ルーチンであることがあります。
- AT OCCURRENCE CEE347 ブレークポイントのコマンドを実行
します (CEE347 条件は発生しません)。現行のプログラム言語の設定は COBOL です。
AT OCCURRENCE CEE347 PERFORM
SET ix TO 5;
END-PERFORM;
TRIGGER AT OCCURRENCE CEE347; /* SET ix TO 5 is executed */
- プログラムで SIGTERM 条件を発生させます。現行のプログラム言語の設定は C です。
TRIGGER SIGTERM;
- あらかじめ定義されている STATEMENT ブレークポイント (行 13) が
起動されます。
AT 13 LIST "at 13";
TRIGGER AT 13;
/* "at 13" will be the echoed output here */
- 以下のブレークポイントがプログラム内に存在すると想定してください。
AT CHANGE x LIST TITLED (x); AT STATEMENT 10;
Debug Tool が、STATEMENT ブレークポイントに関して起動され、AT CHANGE ブレークポイントと関連付けられているコマンドを
起動したい場合には、次のように入力します。
TRIGGER AT CHANGE x;
Debug Tool は値 x を表示します。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
TSO コマンド (z/OS)
TSO コマンドによって、Debug Tool セッション時に TSO コマンドを出す
ことができます。TSO コマンドは、TSO 環境においてのみ有効です。TSO キーワードを省略することはできません。
- tso_command
- パラメーターを必要としない、有効な TSO システム・コマンドまたは CLIST 名。
使用上の注意
例
ユーザー・カタログのすべてのデータ・セットをリストします。
TSO LISTCAT;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
USE コマンド
USE コマンドにより、指定されたファイルまたはデータ・セット
にある Debug Tool コマンドが実行されたり、また構文チェックされます。このファイルは、前のセッションからのログ・ファイルでも構いません。指定されたファイルまたはデータ・セットは、それ自体の中に、別の USE コマンドを含むことができます。ある一時点でオープンできる USE ファイルの最大数は、8 つに限定されます。USE キーワードを省略することはできません。
- ddname
- z/OS で有効な DD 名。
- dsname
- 実行する Debug Tool コマンドを含む z/OS データ・セット。
dsname がアポストロフィ (') で囲まれていない場合、Debug Tool は、これは部分的に修飾されたデータ・セット名で、ユーザー ID を接頭部に付加すると完全修飾データ・セット名になると想定します。
使用上の注意
- USE ファイルでコマンドの構文をチェックする場合。
- EXECUTE 設定を OFF に設定します。
- ファイルに対して USE コマンドを入力します。
- USE ファイルから読み取られるコマンドは、コメントとして記録されます。
- ログ・ファイルは、以降の Debug Tool セッションで、USE ファイルとして
の役割を果たします。
- 再帰呼び出しは許可されません。すなわち、コマンド・ファイルは、既に
アクティブであるときは使用できません。このことは基本コマンドと優先ファイルにも適用されます。USE ファイルの実行中に、Debug Tool がさらに呼び出されると、(例えば、USE ファイルのコマンドを実行中に条件が発生すると)、制御が
その条件から戻ってくるまで、USE ファイルはコマンド入力のために
使用されません。
- USE ファイルは、ファイルの終わりに到達すると、クローズされます。
- 戻りのない コマンド (GO など) が USE ファイル
から実行されると、取られる処置は (USE ファイルのクローズに関する
限り)、次のような一定の条件によって決まります。
- USE ファイルが、基本コマンド・ファイルまたは優先ファイルから直接的にあるいは
間接的に呼び出された場合、そのファイルは、基本コマンド・ファイルあるいは
優先ファイルと同じ特性を持っています。すなわち、USE ファイルはその立場を保持しているので、Debug Tool は、次にコマンドを要求するとき、前に止めた USE ファイルから
読み取ります。
- USE ファイルが、基本コマンド・ファイルまたは優先ファイルから
直接的あるいは非直接的に呼び出されなかった 場合、USE ファイル
の残りの部分と、その USE ファイルを呼び出した
ファイルはスキップされます。
- QUIT コマンドを検出しないまま USE ファイルの終わりに
達すると、Debug Tool は、その USE コマンドが出されたコマンド・ソースに
戻ります。これは、端末の場合もあれば、コマンド・ストリング、あるいは別のコマンド・ファイル
の場合もあります。
- GO、GOTO、または STEP が実行された
ときのその動作に関しては、USE ファイルは、どのような
コマンド・ソースが USE コマンドを出した場合であれ、そのコマンド・ソースの
特性を引き継ぎます。基本コマンド・ファイルから呼び出された USE ファイルは、次のブレークポイントで、次の順番のコマンドを引き続き実行します。それが、これ以外のコマンド・シーケンスから呼び出された場合、GO、GOTO、または STEP がある
と、USE ファイル内にある残りのコマンドが破棄されます。
例
while コマンド (C および C++)
while コマンドにより、指定された条件が満たされなくなるまで、あるいは、偽と評価されるまで、ループの本体を繰り返し実行することができます。while キーワードは小文字でなければならず、省略することはできません。
- expression
- 有効な Debug Tool の C の式。
- command
- 有効な Debug Tool コマンド。
expression は、ループの本体が実行されるかどうかを判別するために
評価されます。expression が偽と評価されると、ループの本体は実行されません。そうでなければ、ループの本体が実行されます。本体が実行された後、制御は再び expression の評価に戻ります。実行部をさらに実行するかどうかは、条件の値によって決まります。
条件が偽と評価されないときでも、break コマンドにより、while コマンド実行の終了が可能になります。
使用上の注意
- 記録されたステートメントを PLAYBACK コマンドを使用して再生している場合、while コマンドを使用することはできません。
例
- 3 で開始して増分 2 で 9 で終了する、x の値をリストします。
x = 1;
while (x +=2, x < 10)
LIST x;
- --index がゼロ (0) 以上の間、式 item[index] の値を 3 倍にします。
while (--index >= 0) {
item[index] *= 3;
printf("item[%d] = %d¥n", index, item[index]);
}
WINDOW コマンド (フルスクリーン・モード)
WINDOW コマンドは、ウィンドウ操作機能を提供します。
WINDOW コマンドは、IMMEDIATE コマンドによって、即時に有効にすることができます。カーソル移動に影響を受ける形式が、PF キーへの割り当て時に一番役に立ちます。WINDOW キーワードはオプションです。
次の表は、WINDOW コマンドの形式を要約しています。
使用上の注意
- オペランドが指定されておらず、カーソルがコマンド行にある
場合、SET DEFAULT WINDOW で設定されるデフォルト・ウィンドウ ID が使
用されます (オープンしている場合。そうでなければ先行コマンド
は SOURCE、LOG、MONITOR です)。
WINDOW CLOSE コマンド
Debug Tool のフルスクリーン・セッション・パネルで、指定された論理ウィンドウの物理ウィンドウを閉じます。残りの開いている物理ウィンドウは拡大して、画面の残りいっぱいに広がります。物理ウィンドウを閉じても、論理ウィンドウには影響しません。例えば、モニター・ウィンドウを表示している物理ウィンドウを閉じても LIST MONITOR コマンド
によって割り当てられた変数値のモニターは停止しません。
物理ウィンドウに割り当てられていない論理ウィンドウを指定した場合、Debug Tool はエラー・メッセージを表示します。
可視の物理ウィンドウが 1 つしかない場合、WINDOW CLOSE は無効です。
- CURSOR
- カーソルが現在位置付けられている場所 (コマンド行以外) のウィンドウ
を選択します。
- LOG
- セッション・ログ・ウィンドウを選択します。
- MEMORY
- メモリー・ウィンドウを選択します。
- MONITOR
- モニター・ウィンドウを選択します。
- SOURCE
- ソース・リスト・ウィンドウを選択します。
例
カーソルを含んでいるウィンドウをクローズします。
WINDOW CLOSE CURSOR;
WINDOW OPEN コマンド
Debug Tool のフルスクリーン・セッション・パネルで、前に閉じた物理ウィンドウを開きます。PANEL LAYOUT コマンドで選択された構成に応じて、既存のいずれかの物理ウィンドウの
サイズが変更されます。
物理ウィンドウに割り当てられていない論理ウィンドウを指定した場合、Debug Tool はエラー・メッセージを表示します。
OPEN コマンドがオペランドなしで実行されると、Debug Tool は最後に閉じた物理ウィンドウを開きます。
- LOG
- セッション・ログ・ウィンドウを選択します。
- MEMORY
- メモリー・ウィンドウを選択します。
- MONITOR
- モニター・ウィンドウを選択します。
- SOURCE
- ソース・リスト・ウィンドウを選択します。
例
モニター・ウィンドウをオープンします。
WINDOW OPEN MONITOR;
WINDOW SIZE コマンド
Debug Tool のフルスクリーン・セッション・パネルで、現在の可視物理ウィンドウの相対サイズ
を制御します。
- integer
- 選択されたウィンドウと現行ウィンドウ構成に適切な、行または桁の数を
指定します。
- CURSOR
- カーソルが現在位置付けられている場所 (コマンド行以外) のウィンドウ
を選択します。WINDOW SIZE のカーソル形式は、integer が指定される場合に、そのウィンドウに適用されます。integer が指定されない場合、ウィンドウの構成が変更されて、ウィンドウの交点がカーソルの位置になりますが、構成に共通の交点がない場合、最も近い境界がカーソルの位置になります。
- LOG
- セッション・ログ・ウィンドウを選択します。
- MEMORY
- メモリー・ウィンドウを選択します。
- MONITOR
- モニター・ウィンドウを選択します。
- SOURCE
- ソース・リスト・ウィンドウを選択します。
使用上の注意
- ウィンドウがズームされている場合、またはオープンしているウィンドウ
が 1 つしかない場合は、WINDOW SIZE を使用することはできません。
- いずれの構成のウィンドウにも、調整可能な寸法が 1 つだけあります。
- 1 つ以上のウィンドウが、画面と同じ横幅である場合:
- 画面と同じ横幅の各ウィンドウについて、行数が調整可能です。
- 残りのウィンドウについて、桁数が調整可能です。
- 1 つ以上のウィンドウが、画面と同じ縦幅である場合:
- 画面と同じ縦幅の各ウィンドウについて、桁数が調整可能です。
- 残りのウィンドウについて、行数が調整可能です。
例
- ソース・ウィンドウのサイズを 15 行に調整します。
WINDOW SIZE 15 SOURCE;
- カーソルが現在位置づけられているウィンドウのサイズを 20 行に調整します。
SIZE 20 CURSOR;
WINDOW SWAP コマンド
SWAP コマンドは、物理ウィンドウに表示されている論理ウィンドウを別の論理ウィンドウで置き換えます。オペランドの順序は重要ではありません。物理ウィンドウはその属性を保持します。例えば、物理ウィンドウを閉じた場合、それは SWAP コマンドが入力されても閉じたままで、WINDOW OPEN コマンドが入力されるまで開きません。
- MEMORY
- メモリー・ウィンドウを選択します。
- LOG
- ログ・ウィンドウを選択します。
例
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
- 関連タスク
- 「Debug Tool ユーザーズ・ガイド」の『Debug Tool セッション・パネル』
- 「Debug Tool ユーザーズ・ガイド」の『メモリー・ウィンドウとログ・ウィンドウの切り替え』
WINDOW ZOOM コマンド
指定された論理ウィンドウを拡大して画面全体に広げるか、あるいは、現在定義されている物理ウィンドウ構成に画面を復元します。論理ウィンドウは物理ウィンドウに割り当てる必要がありません。このコマンドは、物理ウィンドウを再度割り当てることなく、いずれかの論理ウィンドウを表示できる便利な方法です。例えば、MEMORY ウィンドウおよび LOG ウィンドウは同時に表示できないため、WINDOW ZOOM LOG コマンドを使用すると、メモリー・ウィンドウをその物理ウィンドウに割り当てたままの状態で、ログ・ウィンドウを表示することができます。
- CURSOR
- カーソルが現在位置付けられている場所 (コマンド行以外) のウィンドウ
を選択します。
- LOG
- セッション・ログ・ウィンドウを選択します。
- MEMORY
- メモリー・ウィンドウを選択します。
- MONITOR
- モニター・ウィンドウを選択します。
- SOURCE
- ソース・リスト・ウィンドウを選択します。
選択されたウィンドウが現在ズームされている場合、ズーム・モードは切り替わります。すなわち、現在定義されているウィンドウ構成は復元されます。
使用上の注意
WINDOW ZOOM コマンドはログに記録されません。
例
ログ・ウィンドウを拡張します。
WINDOW ZOOM LOG;
CICS 以外の
環境では、非言語環境プログラム の COBOL プログラム、言語環境プログラム・ランタイムなしで実行されるプログラム、
または MVS の LOAD および LINK マクロを使用して
ロードされたプログラムをデバッグするために、SVC スクリーニングが使用可能になっていなければなりません。SVC スクリーニングの管理方法についての説明は、「Debug Tool カスタマイズ・ガイド」を参照してください。
|
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)