ステートメント番号を使用したジョブ・ブレークポイントの設定および除去
問題のモジュールのコンパイラー・リストから分かるステートメント番号を使って、 条件付きまたは無条件のジョブ・ブレークポイントを設定、または削除 します。DBGVIEW(*STMT) を用いて作成されたモジュールをデバッグしたい場合には、これが必要です。
BREAK
デバッグ・コマンドを使って無条件ジョブ・ブレークポイントを設定するには、デバッグ・コマンド行に、
BREAK procedure-name/statement-number
と入力します。変数 procedure-name は、ブレークポイントを設定する
プロシージャーの名前です。 ILE RPG では、1 つのモジュールにつき複数のプロシージャーが許されるため、procedure-name
は、メイン・プロシージャーの名前でも、モジュール内のサブプロシージャーの
1 つでもかまいません。変数 statement-number はブレークポイントを設定したいコンパイラー・リストからの
ステートメント番号です。注: ソース・リスト内のステートメント番号には、OPTION(*NOSRCSTMT) が指定され
た場合には行番号、また、OPTION(*SRCSTMT) が指定された場合にはステートメント番号
というラベルが付けられます。例えば、図 1 は
、OPTION(*NOSRCSTMT) が指定された場合のリストのセクション例を示しています。図 2 は、OPTION(*SRCSTMT) が指定された場合の同じセクションを示
しています。
図 1. OPTION(*NOSRCSTMT) が指定された場合のリストのセクション例
行 <--------------------- ソースの仕様 ----------------------------------------------><---- 注記 ----> Src Seq
番号 ....1....+....2....+<-------- 26 - 35 -------->....4....+....5....+....6....+....7....+....8....+....9....+...10 Id 番号
ソ ー ス ・ リ ス ト
1 C MOVE '123' BI_FLD1 000100
2 C SETON LR---- 000200
* * * * * ソ ー ス の 終 わ り * * * * *
図 2. OPTION(*SRCSTMT) が指定された場合のコンパイラー・リストのセクション例
SEQ <--------------------- ソースの仕様 ----------------------------------------------><---- 注記 ----> Statement
番号 ....1....+....2....+<-------- 26 - 35 -------->....4....+....5....+....6....+....7....+....8....+....9....+...10 番号
ソ ー ス ・ リ ス ト
000100 C MOVE '123' BI_FLD1 000100
000200 C SETON LR---- 000200
* * * * * ソ ー ス の 終 わ り * * * * *
この例では、プロシージャー TEST についてブレークポイントを設定するのにステートメント・ビュー
が使用されています。*NOSRCSTMT リストを使用してモジュールのブレークポイントを設定す
るためには、次のように入力します。
BREAK TEST/2
*SRCSTMT リストを使用してモジュールのブレークポイントを設定す
るためには、次のように入力します。
BREAK TEST/200
いずれの場合も、ブレークポイントは 'SETON LR----' 行に設定されま す。
図 3. ステートメント・ビューを使用したブレークポイントの設定
モジュール・ソースの表示
プログラム : TEST ライブラリー: MYLIB モジュール: TEST
(ソースを使用することができない)
終わり
デバッグ break TEST/2_____________________________________________________
_______________________________________________________________________________
F3=終了プログラム F6=停止点の追加/消去 F10=ステップ F11=変数の表示
F12=再開 F17=変数監視 F18=監視の処理 F24=キーの続き
停止点がプロシージャー TEST のステートメント 2 に追加されました。
その他のすべてのデバッグ・ビューについて、デバッガー内でプログラムの行番号 の
ほかにステートメント番号を使用できます。例えば、以下のリスト・ビューの
サブプロシージャーの始めにブレークポイントを設定するには、次のように入力します。
BREAK 34
または
BREAK FmtCust/2600
いずれの場合も、ブレークポイントは 'P FmtCust B' 行に設定されます。
図 4. ステートメント番号を使用したブレークポイントと、OPTION(*SRCSTMT) の指定されたリスト・ビューの設定
モジュール・ソースの表示
プログラム : MYPGM ライブラリー: MYLIB モジュール: MYPGM
33 002500 * Begin-procedure
34 002600 P FmtCust B
35 002700 D FmtCust PI 25A
36 002800 * Procedure-interface (same as the prototype)
37 002900 D FirstName 10A
38 003000 D LastName 15A
39 003100 D ValidRec N
40 003200 * Calculations
41 003300 C IF ValidRec = '0'
42 003400 C RETURN %TRIMR(FirstName) + ' ' + Last
43 003500 C ENDIF
44 003600 C RETURN 'Last Customer'
45 003700 * End-procedure
46 003800 P E
47 *MAIN PROCEDURE EXIT
More...
デバッグ BREAK fmtcust/2600_______________________________________________
_______________________________________________________________________________
F3=終了プログラム F6=停止点の追加/消去 F10=ステップ F11=変数の表示
F12=再開 F17=変数監視 F18=監視の処理 F24=キーの続き
停止点が行 34 に追加されました。
BREAK デバッグ・コマンドを使って条件付きジョブ・ブレークポイントを設定する
には、デバッグ・コマンド行に、
BREAK procedure-name/statement-number WHEN expression
と入力します。変数の procedure-name および statement-number は
無条件ブレークポイントのものと同じです。 変数の expression はブレークポイントに達した時に評価される条件式です。CLEAR デバッグ・コマンドを使って無条件ブレークポイントまたは条件付きブレークポイントを除
去するためには、デバッグ・コマンド行に、
CLEAR procedure-name/statement-number
と入力します。