実行中のジョブのデバッグ
既に実行されているジョブのデバッグは、そのジョブがこれから実行するステートメントをユーザーが知っている場合に可能です。
例えば、ジョブがループしている場合、またはジョブがデバッグしたいプログラムの実行をまだ完了していない場合には、 実行中のジョブのデバッグを行うことができます。 実行中のジョブのデバッグを行う手順は以下のとおりです。
- Work with Active Jobs (WRKACTJOB) コマンドを使用して、実行中のジョブを見つけます。 画面上で、そのジョブの前にオプション 5 を入力して修飾ジョブ名を表示させてください。
- Start Service Job (STRSRVJOB) コマンドを次のように入力します。
STRSRVJOB JOB(qualified-job-name) - Start Debug (STRDBG) コマンドを入力します。 (このコマンドを入力しても、そのジョブの実行は停止しない)。注: Display Debug (DSPDBG) コマンドを使用して、呼び出しスタックを表示することができます。 ただし、何らかの理由でプログラムが停止した場合を除き、 呼び出しスタックは瞬間的に正しく表示されるだけで、 プログラムの実行が続行されます。
- 実行するステートメントが分かっている場合は、 Add Breakpoint (ADDBKP) コマンドを入力して、そのステートメントでジョブを停止します。
実行されるステートメントが分かっていない場合には、次のようにしてください。
- Add Trace (ADDTRC) コマンドを入力します。
- しばらくしてから、 Remove Trace (RMVTRC) コマンドを入力して、プログラムのトレースを停止します。
- Display Trace Data (DSPTRCDTA) コマンドを入力して、処理されたステートメントを表示します。 このトレース・データから、次に処理すべきステートメント (例えば、 プログラム・ループ内のステートメントなど) を判別してください。
- Add Breakpoint (ADDBKP) コマンドを入力して、そのステートメントでジョブを停止します。
- プログラムがブレークポイントで停止した時点で必要なデバッグ・コマンドを入力する。