Rational Developer for System z バージョン 7.6

フルスクリーン・モードでのプログラムのデバッグ: 概要

フルスクリーン・モードは、3270 端末でのプログラムのデバッグを支援するために Debug Tool が提供するインターフェースです。 このトピックは、基本的なデバッグ・セッションを構成する以下の作業について説明しています。

  1. 適切なコンパイラー・オプションでユーザー・プログラムをコンパイルまたはアセンブルする
  2. Debug Tool の始動
  3. Debug Tool を開始すると、フルスクリーン・モードのインターフェースが表示されます。 Debug Tool フルスクリーン・インターフェースには、このインターフェースの一部が説明されています。 以下の作業のいずれかを行うことができます。
  4. Debug Tool の停止

各トピックを使用して、詳細情報が提供されている他のトピックを参照することができます。

適切なコンパイラー・オプションでユーザー・プログラムをコンパイルまたはアセンブルする

各プログラム言語には、広範囲にわたるコンパイラー・オプションがあります。デバッグするためにプログラムを準備する際には、適切なコンパイラー・オプションを使用することが重要です。 以下に、各プログラム言語に使用できる最も簡単なコンパイラー・オプションのセットをリストします。

C プログラムで使用できるコンパイラー・オプション
TEST および DEBUG コンパイラー・オプションには、デバッグ機能を改善するためのサブオプションが用意されています。デバッグ機能を最大限に活用するためには、デフォルトを使用してください。
C++ プログラムで使用できるコンパイラー・オプション
TEST および DEBUG コンパイラー・オプションには、デバッグ機能を改善するためのサブオプションが用意されています。デバッグ機能を最大限に活用するためには、デフォルトを使用してください。
COBOL プログラムで使用できるコンパイラー・オプション
TEST コンパイラー・オプションには、デバッグ機能を改善するためのサブオプションが用意されています。COBOL の特定のバージョンでしか使用できないサブオプションもあります。 本章では、COBOL のすべてのバージョンで使用できるサブオプションを使うことを前提としています。
非 言語環境プログラムの COBOL プログラムで使用できるコンパイラー・オプション
OS/VS COBOL プログラムをコンパイルする場合、NOTEST、SOURCE、 DMAP、PMAP、VERB、XREF、NOLST、NOBATCH、NOSYMDMP、 NOCOUNT の各オプションが必要です。

VS COBOL II プログラムをコンパイルする場合、NOOPTIMIZE、NOTEST、SOURCE、MAP、XREF のほか、LIST または OFFSET の各オプションが必要です。

PL/I プログラムで使用できるコンパイラー・オプション
TEST コンパイラー・オプションには、デバッグ機能を改善するためのサブオプションが用意されています。一部のサブオプションは、特定のバージョンの PL/I でしか使用されません。この章では、すべてのバージョンの PL/I で使用可能なサブオプションの使用を想定していますが、PL/I for MVS コンパイラーまたは OS PL/I コンパイラーは、SOURCE サブオプションも指定する必要があるため除きます。
アセンブラー・プログラムで使用できるアセンブラー・オプション
プログラムをアセンブルする際は、ADATA オプションの指定が必要です。 このオプションを指定すると、SYSADATA ファイルが生成されます。これは、EQALANGX ポストプロセッサーが デバッグ・ファイルの作成に必要とするものです。

状況に応じて適切な組み合わせを選択する方法について詳しくは、デバッグ・セッションの計画を参照してください。

Debug Tool の始動

Debug Tool をフルスクリーン・モードで始動するには、いくつかの方法があります。それぞれの方法は、各種のコンパイラー・オプションを組み合わせてコンパイルしたプログラムや、さまざまなランタイム環境で実行されるプログラムに対する Debug Tool の始動に役立つように設計されています。これらの方法については、Debug Tool の始動で個々に説明しています。

ここでは、TSO の言語環境プログラムで実行されるプログラムに対して Debug Tool を始動する、最も単純で直接的な方法について説明します。TSO READY プロンプトで、次のコマンドを入力します。

CALL 'USERID1.MYLIB(MYPROGRAM)' '/TEST'

デバッグするプログラム言語に応じて、TEST ランタイム・オプションの前または後にスラッシュ (/) を付けます。

Debug Tool を始動するその他の方法について詳しくは、以下のトピックを参照してください。

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 コマンドを入力する場所です。

物理ウィンドウは、特定のタイプのデバッグ情報を表示する、画面上の専用スペースです。デバッグ情報は、論理ウィンドウと呼ばれる、以下の各タイプに編成されています。

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

デフォルト画面には 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 ;

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

変数の値の表示

ブレークポイントの設定とユーザー・プログラムの実行について十分理解できたら、変数の値の表示に取りかかります。変数の値は、次のいずれかの方法で表示できます。

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

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

メモリーをダンプのような形式で直接表示できると便利な場合があります。メモリー・ウィンドウを使用すると、その形式でメモリーを表示できます。

メモリー・ウィンドウはデフォルト画面には表示されません。メモリー・ウィンドウを表示するには、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 は、ステートメントを順方向または逆方向に再生した場合の、ステートメントの再生順序を説明します。

表 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 コマンドを入力した後に実行するステートメントが記録されます。

記録したステートメントを再生するには、以下のようにしてください。

  1. PLAYBACK START コマンドを入力する。
  2. ステートメントを 1 つ戻るには、STEP コマンドを入力する。
  3. ステートメントがある限り、上記の 2 を繰り返して別のステートメントを再生する。
  4. 前へ (現在のステートメントから次のステートメントへ) 移動するには、PLAYBACK FORWARD コマンドを入力する。
  5. STEP コマンドを入力して、別のステートメントを再生する。
  6. ステップ 5 を任意の回数繰り返し、別のステートメントを再生する。
  7. 後ろへ移動するには、PLAYBACK BACKWARD コマンドを入力する。

PLAYBACK BACKWARD および PLAYBACK FORWARD は、STEP のようなコマンドが移動する方向を変更します。

ステートメントの再生が終了したら、PLAYBACK STOP コマンドを入力してください。Debug Tool は、ユーザーが PLAYBACK START コマンドを入力した箇所へ戻ります。そこから、通常のデバッグを再開することができます。Debug Tool は、続けてユーザーのステートメントを記録します。新しいステートメント・セットを再生するには、1 のステップから始めてください。

ステートメントの記録と再生が終了したら、以下のコマンドを入力してください。

PLAYBACK DISABLE

Debug Tool は、それ以降ステートメントの記録を行わず、ユーザーが記録した情報を破棄します。PLAYBACK STARTPLAYBACK FORWARDPLAYBACK BACKWARD、および PLAYBACK STOP の各コマンドは、使用できなくなります。

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

Debug Tool の停止

デバッグ・セッションを停止するには、以下のステップを行います。

  1. QUIT コマンドを入力する。
  2. デバッグ・セッションの停止要求を確認するメッセージに対して、"Y" を押し、その後 Enter を押す。

Debug Tool の画面が閉じます。

デバッグ・セッションを停止できる QQUITQUIT ABEND、 および QUIT DEBUG コマンドについて詳しくは、「Debug Tool リファレンスおよびメッセージ」を参照してください。

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


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

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