プログラム・オブジェクトのステップスルー
ブレークポイントに達した後で、プログラム・オブジェクトの指定された数の ステートメントを実行し、次にプログラムを再び停止して「モジュール・ソースの 表示」画面に戻ることができます。 これを行うには、ILE ソースのステップ機能を使います。プログラム・オブジェクトはプログラムが停止したモジュール・オブジェクト の次のステートメントで実行を再開します。 通常、ブレークポイントはプログラム・オブジェクトを停止するために 使用されます。
ブレークポイントは、プログラムの呼び出し前およびプログラムのステップスルー中に設定で きます。ブレークポイントは、デフォルトの OPTION(*DEBUGIO) が指定された場合には、入出力 仕様書について自動的に生成されます。 このオプションを選択した場合、READ ステー トメントに STEP を指定すると、入力仕様書は停止されます。OPTION(*NODEBUGIO) を指 定すると、入出力仕様書についてブレークポイントを生成しないよう選択できます。
OPM プログラムに利用可能なデバッグ・データがある場合、および デバッグ・セッションが OPM プログラムを受け入れてデバッグを行う場合には、 OPM プログラムにステップインすることができます。
次を使用してプログラム・オブジェクトをステップスルーすることができます。
- 「モジュール・ソースの表示」画面の F10 (ステップ) または F22 (ステップイン)
- STEP デバッグ・コマンド
一度に 1 ステートメントずつプログラム・オブジェクトをステップスルー
する最も単純な方法は、「モジュール・ソースの表示」画面で F10 (ステップ)
または F22 (ステップイン) を使用することです。
F10 (ステップ) または F22 (ステップイン) を押すと、
「モジュール・ソースの表示」画面に示された
モジュール・オブジェクトの次のステートメントが実行され、
プログラム・オブジェクトが再び停止します。
注: F10 (ステップ) または F22 (ステップイン) を使用する時に
ステップスルーするステートメントの数を指定することはできません。
F10 (ステップ) または F22 (ステップイン) を押すと、シングル・ステップ
が実行されます。
プログラム・オブジェクトをステップスルーするもう 1 つの方法は、
STEP デバッグ・コマンドを使用する方法です。
STEP デバッグ・コマンドによって、シングル・ステップで複数の
ステートメントを実行することができます。 STEP デバッグ・コマンドを使用して実行するステートメントのデフォルトの数は
1 つです。 STEP デバッグ・コマンドを使用してプログラム・オブジェクトを
ステップスルーするには、デバッグ・コマンド行に
STEP number-of-statements
と入力します。
変数 number-of-statements は、
プログラム・オブジェクトがもう再度停止する前に次のステップで実行したい
プログラム・オブジェクトのステートメントの数です。 例えば、
STEP 5
プログラム・オブジェクトの次ぎ 5 つのステートメントが
実行され、次のプログラム・オブジェクトが再度停止し、「モジュール・ソースの表示」画面が表示されます。別のプログラムまたはプロシージャーへの呼び出しステートメントがデバッグ
・セッションに出てきた場合には、
次のようにできます。
- 呼び出しステートメントをステップオーバーする。または
- 呼び出しステートメントにステップインする。
ILE RPG の呼び出しステートメントには、次の命令のいずれかが含まれています。
- CALL
- CALLB
- CALLP
- 拡張演算項目 2 フィールドに式のある命令で、その式にはプロシージャー に対する呼び出しが入っています。
呼び出しステートメントのステップオーバーを選択した場合には、 現行プロシージャー内に留まります。 呼び出しステートメントはシングル・ステップとして処理され、カーソルはその 呼び出し後に次のステップに移動します。 ステップオーバーはデフォルトのステップ・モードです。
呼び出しステートメントへのステップインを選択した場合には
、呼び出しステートメント内部の各ステートメントがシングル・ステップとして
実行されます。 指定されたステップの数に従って、ステップ・コマンドは
呼び出しステートメント内で終了することがありますが、この場合には、
呼び出しステートメントのソースが
「モジュール・ソースの表示」画面に表示されます。
注: RPG サブルーチンではステップオーバーまたはステップイン
することはできません。
しかし、サブプロシージャーではステップオーバーおよびステップイン
することができます。