プログラム・オブジェクトまたは ILE プロシージャーのステップスルー

停止点の検出後、プログラム・オブジェクトまたは ILE プロシージャーの指定された数のステートメントを実行してから、 プログラムを再度停止し、次に「モジュール・ソースの表示」画面に戻ることができます。 プログラム・オブジェクトまたは ILE プロシージャーは、 プログラムが停止したモジュール・オブジェクトの次のステートメントから実行が開始されます。

OPM プログラムに使用可能なデバッグ・データが含まれている場合、およびデバッグ・セッションで OPM プログラムのデバッグが受け入れられる場合は、そのプログラムをステップイントゥできます。

次のものを使用すると、プログラム・オブジェクトまたは ILE プロシージャーをステップスルーすることができます。

プログラム・オブジェクトまたは ILE プロシージャーをステップスルーしてステートメントごとに実行する最も簡単な方法は、 「モジュール・ソースの表示」画面で F10 (ステップ) または F22 (ステップイントゥ) を使用することです。 F10 (ステップ) または F22 (ステップイントゥ) を押すと、 「モジュール・ソースの表示」画面に表示されているモジュール・オブジェクトの次のステートメントが実行され、 プログラム・オブジェクトまたは ILE プロシージャーは再度停止します。 複数のステートメントが含まれている行で F10 (ステップ) または F22 (ステップイントゥ) を押した場合、 その行のすべてのステートメントが実行され、プログラム・オブジェクトまたは ILE プロシージャーは、次の行の次のステートメントで停止します。

注:
F10 (ステップ) または F22 (ステップイントゥ) を使用した場合は、 ステップスルーするステートメントの数を指定することはできません。 F10 (ステップ) または F22 (ステップイントゥ) を押すと、1 ステップずつ実行されます。

プログラム・オブジェクトまたは ILE プロシージャーをステップスルーするもう 1 つの方法は、STEP デバッグ・コマンドを使用することです。 STEP デバッグ・コマンドを使用すると、1 つのステップで複数のステートメントを実行することができます。 STEP デバッグ・コマンドを使用する場合に実行されるステートメント数のデフォルトは 1 です。 STEP デバッグ・コマンドを使用してプログラム・オブジェクトまたは ILE プロシージャーをステップスルーするには、デバッグ・コマンド行で次のように入力します。

STEP number-of-statements

ステートメント数 は、アプリケーションが再停止するまでに次のステップで実行させるステートメントの数です。たとえば、デバッグ・コマンド行に次のように入力します。

STEP 5

この場合、プログラム・オブジェクトまたは ILE プロシージャーのうち、その次の 5 つのステートメントが実行された後に、 プログラム・オブジェクトまたは ILE プロシージャーは再度停止し、続いて「モジュール・ソースの表示」画面が表示されます。

デバッグ・セッション内で他のプログラム・オブジェクトまたは ILE プロシージャーに指定された CALL ステートメントが検出された場合、次のことを行うことができます。

呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーのステップオーバーを選択した場合、CALL ステートメントと呼び出し先プログラム・オブジェクトとが、1 つのステップとして実行されます。 呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーは、呼び出し側プログラム・オブジェクトまたは ILE プロシージャーが次のステップで停止するまで実行されます。 ステップオーバーは、デフォルトのステップ・モードです。

呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーのステップイントゥを選択した場合、 その呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーの各ステートメントが 1 つのステップとして実行されます。 実行中のプログラム・オブジェクトまたは ILE プロシージャーが停止する次のステップが、呼び出し先のプログラム・オブジェクトまたは ILE プロシージャー内にある場合、 呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーはその時点で停止し、「モジュール・ソースの表示」画面にその呼び出し先のプログラムまたは ILE プロシージャーが表示されます。

プログラム・オブジェクトまたは ILE プロシージャーのステップオーバー

プログラム・オブジェクトまたは ILE プロシージャーをステップオーバーするには、以下のものを使用します。

「モジュール・ソースの表示」画面で F10 (ステップ) を使用すると、 デバッグ・セッション内の呼び出されたプログラム・オブジェクトまたは ILE プロシージャーをステップオーバーすることができます。 次に実行するステートメントが他のプログラム・オブジェクトまたは ILE プロシージャーへの CALL ステートメントである場合、F10 (ステップ) を押すと、 呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーは、呼び出し側プログラム・オブジェクトまたは ILE プロシージャーが再び停止するまで最後まで実行されます。

別の方法として、STEP OVER デバッグ・コマンドを使用して、デバッグ・セッション内の呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーをステップオーバーすることができます。 STEP OVER デバッグ・コマンドを使用するには、デバッグ・コマンド行で次のように入力します。

STEP number-of-statements OVER

ステートメント数 は、アプリケーションが再停止するまでに次のステップで実行させるステートメントの数です。 実行するステートメントのどれかに、他のプログラム・オブジェクトまたは ILE プロシージャーへの CALL ステートメントが含まれている場合、ILE ソース・デバッガーは、呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーをステップオーバーします。

プログラム・オブジェクトまたは ILE プロシージャーのステップイントゥ

プログラム・オブジェクトまたは ILE プロシージャーをステップイントゥするには、以下のものを使用します。

「モジュール・ソースの表示」画面で F22 (ステップイントゥ) を使用すると、 デバッグ・セッション内の呼び出されたプログラム・オブジェクトまたは ILE プロシージャーをステップイントゥすることができます。 次に実行するステートメントが他のプログラム・オブジェクトまたは ILE プロシージャーへの CALL ステートメントである場合に F22 (ステップイントゥ) を押すと、 呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーの最初の実行可能ステートメントが実行されます。 その後、プログラム・オブジェクトまたは ILE プロシージャーが「モジュール・ソースの表示」画面に表示されます。

注:
呼び出し先の ILE プログラム・オブジェクトまたはプロシージャーが「モジュール・ソースの表示」画面に表示されるには、ILE プログラム・オブジェクトまたはプロシージャーに、関連するデバッグ・データがなければなりません。 ILE ソース・デバッガーが OPM プログラムを受け入れるようにセットアップされていて、その OPM プログラムにデバッグ・データが含まれている場合は、 呼び出し先 OPM プログラム・オブジェクトが「モジュール・ソースの表示」画面に表示されます。 (OPM プログラムが OPTION(*SRCDBG) または OPTION(*LSTDBG) でコンパイルされたものであれば、デバッグ・データが含まれています。)

別の方法として、STEP INTO デバッグ・コマンドを使用して、デバッグ・セッション内の呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーをステップイントゥすることができます。 STEP INTO デバッグ・コマンドを使用するには、デバッグ・コマンド行で次のように入力します。

STEP number-of-statements INTO

ステートメント数 は、プログラム・オブジェクトまたは ILE プロシージャーが再停止するまでに次のステップで実行したいプログラム・オブジェクトまたは ILE プロシージャーのステートメントの数です。 実行するステートメントのどれかに、他のプログラム・オブジェクトまたは ILE プロシージャーへの CALL ステートメントが含まれている場合、 デバッガーは、呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーをステップオーバーします。 ステップの中で、呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーの各ステートメントがカウントされます。 呼び出し先のプログラム・オブジェクトまたは ILE プロシージャー内でステップが終了する場合、 そのプログラム・オブジェクトまたは ILE プロシージャーが「モジュール・ソースの表示」画面に表示されます。 たとえば、デバッグ・コマンド行に次のように入力します。

STEP 5 INTO

この場合、プログラム・オブジェクトまたは ILE プロシージャーの次の 5 つのステートメントが実行されます。 3 番目のステートメントが他のプログラム・オブジェクトまたは ILE プロシージャーへの CALL ステートメントである場合、 呼び出し側プログラム・オブジェクトまたは ILE プロシージャーの 2 つのステートメントが実行され、呼び出し先のプログラム・オブジェクトまたは ILE プロシージャーの最初の 3 つのステートメントが実行されます。