次を使用して、呼び出しステートメントへステップインすることができま す。
「モジュール・ソースの表示」画面の F22 (ステップイン) を使って、デバッグ・セッションの呼び出し先プログラム またはプロシージャーにステップインすることができます。 実行する次のステートメントが 別のプログラムまたはプロシージャーへの 呼び出しステートメントの場合には、F22 (ステップイン) を押すことによって 、呼び出し先プログラムまたはプロシージャーの最初の実行可能な ステートメントを実行することができます。 次に、呼び出し先プログラムまたはプロシージャーが 「モジュール・ソースの表示」画面に表示されます。
もう 1 つの方法として STEP INTO デバッグ・コマンドを使用して、デバッグ・ セッションで呼び出しステートメントをステップイン することができます。 STEP INTO デバッグ・コマンドを使用するためには、 デバッグ・コマンド行に次を入力します。
STEP number-of-statements INTO
と入力します。変数 number-of-statements は、処理が再び停止する前に次のステップで実行するステートメントの数です。 この変数を省略した場合、デフォルトの値は 1 です。
実行されるステートメントの 1 つに呼び出しステートメントが入っている場合には、 デバッガーが呼び出し先プログラムまたはプロシージャーに ステップインします。 呼び出し先プログラムまたはプロシージャーの各ステートメントはステップ でカウントされます。 ステップが呼び出し先プログラムまたはプロシージャーで終了する場合には、 この呼び出し先プログラムまたはプロシージャーが「モジュール・ソースの 表示」画面に表示されます。 例えば、
STEP 5 INTO
とデバッグ・コマンド行に入力すると、 プログラム・オブジェクトの次の 5 つのステートメントが実行されます。 3 番目のステートメントが別のプログラム・オブジェクトに対する CALL 命令である場合には、 呼び出し側プログラム・オブジェクトの 2 つのステートメントが実行され、 呼び出し先プログラム・オブジェクトの最初の 3 つのステートメントが実行されます。
DEBUGEX の例では、プロシージャー c_proc を呼び出す EVAL 命令で STEP INTO を入力した (または F22 を押した) 場合に、C モジュールに ステップインします。
STEP INTO コマンドは、CL CALL コマンドを同様に処理します。 呼び出しの後で、これを利用してプログラムをステップスルーすることができ ます。 ソース・デバッガーを開始した後、 「モジュール・ソースの表示」画面から、次の入力をします。
STEP 1 INTO
これでステップ・カウントは 1 に設定されます。F12 を使ってコマンド行に戻り、次にプログラムを 呼び出します。 プログラムは、デバッグ・データをもつ最初のステートメントで 停止します。
サブプロシージャーの実行の直前または直後にデータを表示するためには、 サブプロシージャーを開始および終了するプロシージャー仕様書にブレークポイントを置きます。
この例では、F22 (ステップイン) を使用して プログラム DEBUGEX から OPM プログラム RPGPGM にステップインします。
モジュール・ソースの表示 PROGRAM: DEBUGEX LIBRARY: MYLIB MODULE: DBGEX 98 * FLD1A は FLD1 のオーバーレイ・フィールドです。FLD1 は 'ABCDE' に 99 * 初期設定されているので、FLD1A(1) の値は 'A' です。次の 100 * MOVE 命令の後の FLD1A(1) の値は '1' になります。 101 *---------------------------------------------------------------- 102 C MOVE '1' FLD1A(1) 103 104 *---------------------------------------------------------------- 105 * 別のプログラム・オブジェクトであるプログラム RPGPGM を * 呼び出します。 106 *---------------------------------------------------------------- 107 C PLIST1 PLIST 108 C PARM PARM1 109 C CALL 'RPGPGM' PLIST1 110 111 *---------------------------------------------------------------- 112 * メイン・プロシージャーから EXPORTFLD をインポートする C_PROC を * 呼び出します。 続く... デバッグ . . _________________________________________________________________ _______________________________________________________________________________ F3=終了プログラム F6=停止点の追加/消去 F10=ステップ F11=変数の表示 F12=再開 F17=ウォッチ変数 F18=ウォッチの処理 F24=キーの続き 行 102 が停止点。
この場合、RPGPGM の最初の実行可能ステートメントが処理されてから (行 13)、 プログラムが停止します。
モジュール・ソースの表示 PROGRAM: RPGPGM LIBRARY: MYLIB 1 *=================================================================== 2 * RPGPGM - DEBUGEX によって呼び出されるプログラム。ILE ソース・ 3 * デバッグ・プログラムの STEP 機能を説明しています。 4 * 5 * このプログラムは DEBUGEX から INPUTPARM を受け取り、 6 * それを表示してから戻ります。 7 *=================================================================== 8 9 D INPUTPARM S 4P 3 10 11 C *ENTRY PLIST 12 C PARM INPUTPAEM 13 C InputParm DSPLY 14 C SETON 終わり デバッグ . . ________________________________________________________________________ ________________________________________________________________________________________ F3=終了プログラム F6=停止点の追加/消去 F10=ステップ F11=変数の表示 F12=再開 F17=ウォッチ変数 F18=ウォッチの処理 F24=キーの続き 行 13 でステップが完了した。
ILE ソース・デバッガーが OPM プログラムを受け入れるように設定 されていない場合、あるいはデバッグ・データが利用できない場合には、 ソースが利用不能であることを知らせるメッセージを持つ、 ブランクの「モジュール・ソースの表示」画面が表示されます (OPM プログラム が OPTION(*SRCDBG) または OPTION(*LSTDBG) を使用して コンパイルされている場合には、このプログラムにはデバッグ・データがあります)。
この例では、F22 (ステップイン) を使用してサブプロシージャー Switch に ステップインしますが、これはモジュール DEBUGEX にあります。
モジュール・ソースの表示 PROGRAM: DEBUGEX LIBRARY: MYLIB MODULE: DBGEX 141 142 *============================================================= 143 * サブプロシージャー SWITCH の定義 144 *============================================================= 145 P SWITCH B 146 D SWITCH PI 147 D PARM 1A 148 *--------------------------------------------------------- 149 * デバッグのためのローカル変数の定義 150 *--------------------------------------------------------- 151 D Local S 5A INZ('aaaaa') 152 153 C IF Parm = '1' 154 C EVAL Parm = '0' 155 C ELSE デバッグ . . _________________________________________________________________ _______________________________________________________________________________ F3=終了プログラム F6=停止点の追加/消去 F10=ステップ F11=変数の表示 F12=再開 F17=ウォッチ変数 F18=ウォッチの処理 F24=キーの続き 行 145 でステップが完了した。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.