フルスクリーン・モードは、3270 端末でのプログラムのデバッグを支援するために Debug Tool が提供するインターフェースです。 このトピックは、基本的なデバッグ・セッションを構成する以下の作業について説明しています。
各トピックを使用して、詳細情報が提供されている他のトピックを参照することができます。
各プログラム言語には、広範囲にわたるコンパイラー・オプションがあります。デバッグするためにプログラムを準備する際には、適切なコンパイラー・オプションを使用することが重要です。 以下に、各プログラム言語に使用できる最も簡単なコンパイラー・オプションのセットをリストします。
VS COBOL II プログラムをコンパイルする場合、NOOPTIMIZE、NOTEST、SOURCE、MAP、XREF のほか、LIST または OFFSET の各オプションが必要です。
状況に応じて適切な組み合わせを選択する方法について詳しくは、デバッグ・セッションの計画を参照してください。
Debug Tool をフルスクリーン・モードで始動するには、いくつかの方法があります。それぞれの方法は、各種のコンパイラー・オプションを組み合わせてコンパイルしたプログラムや、さまざまなランタイム環境で実行されるプログラムに対する Debug Tool の始動に役立つように設計されています。これらの方法については、Debug Tool の始動で個々に説明しています。
ここでは、TSO の言語環境プログラムで実行されるプログラムに対して Debug Tool を始動する、最も単純で直接的な方法について説明します。TSO READY プロンプトで、次のコマンドを入力します。
CALL 'USERID1.MYLIB(MYPROGRAM)' '/TEST'
デバッグするプログラム言語に応じて、TEST ランタイム・オプションの前または後にスラッシュ (/) を付けます。
Debug Tool を始動するその他の方法について詳しくは、以下のトピックを参照してください。
Debug Tool を始動すると、次の Debug Tool 画面が表示されます。
COBOL LOCATION: EMPLOOK initialization
Command ===> Scroll ===> PAGE
MONITOR --+----1----+----2----+----3----+----4----+----5----+----6 LINE: 0 OF 0
******************************* TOP OF MONITOR ********************************
****************************** BOTTOM OF MONITOR ******************************
SOURCE: EMPLOOK --1----+----2----+----3----+----4----+----5----+ LINE: 1 OF 349
1 ************************************************************ .
2 * * .
3 * * .
4 ************************************************************ .
5 .
6 ************************************************************ .
7 IDENTIFICATION DIVISION. .
8 ************************************************************ .
9 PROGRAM-ID. "EMPLOOK". .
LOG 0----+----1----+----2----+----3----+----4----+----5----+----6- LINE: 1 OF 5
********************************* TOP OF LOG **********************************
0001 IBM Debug Tool Version 9 Release 1 Mod 0
0002 10/03/2008 4:11:41 PM
0003 5655-U27: Copyright IBM Corp. 1992, 2008
PF 1:? 2:STEP 3:QUIT 4:LIST 5:FIND 6:AT/CLEAR
PF 7:UP 8:DOWN 9:GO 10:ZOOM 11:ZOOM LOG 12:RETRIEVE
デフォルトの画面は、4 つのセクションに分かれています。セッション・パネル・ヘッダーと 3 つの物理ウィンドウです。セッション・パネル・ヘッダーは画面の一番上にある 2 行で、ここにはヘッダー・フィールドとコマンド行が表示されます。ヘッダー・フィールドでは、プログラム言語とプログラム内の位置を表示します。コマンド行は、Debug Tool コマンドを入力する場所です。
物理ウィンドウは、特定のタイプのデバッグ情報を表示する、画面上の専用スペースです。デバッグ情報は、論理ウィンドウと呼ばれる、以下の各タイプに編成されています。
デフォルト画面には 3 つの物理ウィンドウが表示されます。1 つはモニター・ウィンドウに割り当てられ、2 番目はソース・ウィンドウ、3 番目はログ・ウィンドウにそれぞれ割り当てられます。メモリー・ウィンドウは、ログ・ウィンドウと交換することができます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
プログラムのステップスルーとは、プログラムを一度に 1 行ずつ実行するということです。各行の実行後に、プログラムの流れとストレージでの変更を監視できます。これらの変更は、モニター・ウィンドウ、ソース・ウィンドウ、およびログ・ウィンドウに表示されます。プログラムをステップスルーするには、STEP コマンドを使用してください。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
次のいずれかの方法で、プログラム内の 1 つの点から別の点までを実行できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
Debug Tool で、ブレークポイントは、ユーザー・プログラムでの停止点と、時間での停止点を示します。ブレークポイントには、実行する命令、計算、および変更といったアクティビティーも含まれます。
基本的なブレークポイントは、ユーザー・プログラム内での停止点を示します。例えば、ユーザー・プログラムの行 100 で停止するには、コマンド行で次のコマンドを入力します。
AT 100
ログ・ウィンドウに、メッセージ AT 100 ; が表示されます。 行 100 がブレークポイントを設定するのに有効な場所でない場合、ログ・ウィンドウに「行 100 は有効ではありません」というようなメッセージを表示します。接頭部域のカラーを反転させると、ブレークポイントはソース・ウィンドウにも表示されます。
ブレークポイントは、停止する場所を示すだけではありません。ブレークポイントには命令も含まれています。例えば、次のブレークポイントは、Debug Tool が行 100 に達したら、変数 myvar の内容を表示するように Debug Tool に指示しています。
AT 100 LIST myvar;
ブレークポイントには、プログラムの流れを変更するような命令を含むこともできます。例えば、次のブレークポイントは、Debug Tool が行 100 に達したら、ラベル newPlace に移動するように指示しています。
AT 100 GOTO newPlace ;
ブレークポイントには条件を含めることができます。つまり、Debug Tool は、条件が満たされる場合にのみ、ブレークポイントで停止します。 例えば、myvar の値が 10 を超える場合にのみ、行 100 で停止するようにするには、以下のコマンドを入力します。
AT 100 WHEN myvar > 10;
ブレークポイントには、複雑な命令を含めることもできます。次の例では、Debug Tool が行 100 に達すると、変数 mybool の値が true の場合に、変数 myvar の内容を変更します。
AT 100 if (mybool == TRUE) myvar = 10 ;
複雑な命令の構文は、デバッグ中のプログラム言語によって異なります。先ほどの例では、C プログラムをデバッグしていることを前提としています。COBOL プログラムをデバッグしている場合は、同じ例が次のように書かれます。
AT 100 if mybool = TRUE THEN myvar = 10 ; END-IF ;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
ブレークポイントの設定とユーザー・プログラムの実行について十分理解できたら、変数の値の表示に取りかかります。変数の値は、次のいずれかの方法で表示できます。
ワンタイム表示を表示するには、コマンド行に以下のコマンドを入力してください。ここで x は変数の名前を表します。
LIST (x)
ログ・ウィンドウが、以下の形式でメッセージを表示します。
LIST ( x ) ; x = 10
代わりに、ソース・ウィンドウの接頭部域に L 接頭部コマンドを入力することもできます。 以下のソース・ウィンドウの行では、接頭部域に L2 を入力し、Enter を押して var2 の値を表示します。
200 var1 = var2 + var3;
Debug Tool は、コマンド LIST (var2) を作成し、それを実行して、以下のメッセージをログ・ウィンドウに表示します。
LIST ( VAR2 ) ; VAR2 = 50
L 接頭部コマンドは、ソースが以下のコンパイラーでコンパイルされた場合にのみ使用できます。
連続表示を表示するには、コマンド行に以下のコマンドを入力してください。ここで x は変数の名前を表します。
MONITOR LIST ( x )
モニター・ウィンドウに、変数名が含まれた行が表示され、その横に変数の現行値が表示されます。変数の値が未定義の場合、変数が初期設定されていない場合、あるいは変数が存在しない場合は、変数が使用できないことを示すメッセージが変数名の下に表示されます。
代わりに、ソース・ウィンドウの接頭部域に M 接頭部コマンドを入力することもできます。 以下のソース・ウィンドウの行では、接頭部域に M3 を入力し、Enter を押して var3 をモニター・ウィンドウに追加します。
200 var1 = var2 + var3;
Debug Tool は、コマンド MONITOR LIST (var3) を作成し、それを実行して、var3 をモニター・ウィンドウに追加します。
M 接頭部コマンドは、ソースが以下のコンパイラーでコンパイルされた場合にのみ使用できます。
ワンタイム表示と連続表示を組み合わせる場合は、コマンド行に次のコマンドを入力してください。
SET AUTOMONITOR ON ;
コードの 1 行が実行されるたびに、モニター・ウィンドウに、その行に含まれている各変数の名前と値が表示されます。SET AUTOMONITOR コマンドは、「Debug Tool リファレンスおよびメッセージ」に記載されている特定のプログラム言語でのみ使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
メモリーをダンプのような形式で直接表示できると便利な場合があります。メモリー・ウィンドウを使用すると、その形式でメモリーを表示できます。
メモリー・ウィンドウはデフォルト画面には表示されません。メモリー・ウィンドウを表示するには、WINDOW SWAP MEMORY LOG コマンドを使用します。Debug Tool は、メモリー・ウィンドウをログ・ウィンドウの場所に表示します。
メモリー・ウィンドウを表示した後、SCROLL DOWN コマンドおよび SCROLL UP コマンドを使用してウィンドウ内をナビゲートできます。16 進データ域に新しい値を入力することにより、メモリーの内容を変更できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
変数の値を確認した後で、その値を変更することができます。例えば、割り当てられた値が期待していたものと異なる場合、望みの値に変更することができます。値の変更後、変数が正しく設定されなかった原因の分析は後に回して、プログラムの流れの検討を続けることができます。
変数の値の変更は、デバッグ中のプログラム言語によって異なります。Debug Tool では、変数への値の割り当ての規則および方式は、プログラム言語の割り当て規則および方式と同じです。例えば、値を C の変数に割り当てるには、次のように C の割り当て規則と方式を使用します。
var = 1 ;
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
DISABLE コマンドを使用して、ブレークポイントを一時的に使用不可にすることができます。ブレークポイントを再び使用可能にするには、ENABLE コマンドを使用してください。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
ブレークポイントが必要でなくなったら、ブレークポイントをクリアすることができます。 ブレークポイントをクリアすると、そのブレークポイントに関連したすべての命令が除去されます。 例えば、ユーザー・プログラムの行 100 のブレークポイントをクリアするには、コマンド行で次のコマンドを入力します。
CLEAR AT 100
ログ・ウィンドウに CLEAR AT 100 ; という行が表示され、接頭部域は元の色に復帰します。このような変更から、行 100 のブレークポイントがなくなったことがわかります。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
実行するステートメントを記録し、その後再生することができます。ステートメントを再生する際、順方向あるいは逆方向で再生が可能です。表 4 は、ステートメントを順方向または逆方向に再生した場合の、ステートメントの再生順序を説明します。
| 順方向に再生順序 | 逆方向に再生順序 | COBOL ステートメント |
|---|---|---|
| 1 | 9 | DISPLAY "CALC Begins." |
| 2 | 8 | MOVE 1 TO BUFFER-PTR. |
| 3 | 7 | PERFORM ACCEPT-INPUT 2 TIMES. |
| 8 | 2 | DISPLAY "CALC Ends." |
| 9 | 1 | GOBACK. |
| ACCEPT-INPUT. | ||
| 4, 6 | 4, 6 | ACCEPT INPUT-RECORD FROM A-INPUT-FILE |
| 5, 7 | 3, 5 | MOVE RECORD-HEADER TO REPROR-HEADER. |
記録を開始するには、以下のコマンドを入力してください。
PLAYBACK ENABLE
PLAYBACK ENABLE コマンドを入力した後に実行するステートメントが記録されます。
記録したステートメントを再生するには、以下のようにしてください。
PLAYBACK BACKWARD および PLAYBACK FORWARD は、STEP のようなコマンドが移動する方向を変更します。
ステートメントの再生が終了したら、PLAYBACK STOP コマンドを入力してください。Debug Tool は、ユーザーが PLAYBACK START コマンドを入力した箇所へ戻ります。そこから、通常のデバッグを再開することができます。Debug Tool は、続けてユーザーのステートメントを記録します。新しいステートメント・セットを再生するには、1 のステップから始めてください。
ステートメントの記録と再生が終了したら、以下のコマンドを入力してください。
PLAYBACK DISABLE
Debug Tool は、それ以降ステートメントの記録を行わず、ユーザーが記録した情報を破棄します。PLAYBACK START、PLAYBACK FORWARD、PLAYBACK BACKWARD、および PLAYBACK STOP の各コマンドは、使用できなくなります。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
デバッグ・セッションを停止するには、以下のステップを行います。
Debug Tool の画面が閉じます。
デバッグ・セッションを停止できる QQUIT、QUIT ABEND、 および QUIT DEBUG コマンドについて詳しくは、「Debug Tool リファレンスおよびメッセージ」を参照してください。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。