ステートメント番号を使用したジョブ・ブレークポイントの設定および除去

問題のモジュールのコンパイラー・リストから分かるステートメント番号を使って、 条件付きまたは無条件のジョブ・ブレークポイントを設定、または削除 します。DBGVIEW(*STMT) を用いて作成されたモジュールをデバッグしたい場合には、これが必要です。

BREAK デバッグ・コマンドを使って無条件ジョブ・ブレークポイントを設定するには、デバッグ・コマンド行に、

BREAK procedure-name/statement-number

と入力します。変数 procedure-name は、ブレークポイントを設定する プロシージャーの名前です。 ILE RPG では、1 つのモジュールにつき複数のプロシージャーが許されるため、procedure-name は、メイン・プロシージャーの名前でも、モジュール内のサブプロシージャーの 1 つでもかまいません。変数 statement-number はブレークポイントを設定したいコンパイラー・リストからの ステートメント番号です。

注:
ソース・リスト内のステートメント番号には、OPTION(*NOSRCSTMT) が指定され た場合には行番号、また、OPTION(*SRCSTMT) が指定された場合にはステートメント番号 というラベルが付けられます。例えば、図 104 は 、OPTION(*NOSRCSTMT) が指定された場合のリストのセクション例を示しています。図 105 は、OPTION(*SRCSTMT) が指定された場合の同じセクションを示 しています。

図 104. 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
       * * * * *   ソ ー ス の 終 わ り   * * * * *

図 105. 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----' 行に設定されま す。

図 106. ステートメント・ビューを使用したブレークポイントの設定
                             モジュール・ソースの表示
 PROGRAM:   TEST           LIBRARY:   MYLIB          MODULE:   TEST
   (ソースを使用することができない)
                                                                         終わり
 デバッグ. .  break TEST/2_____________________________________________________
_______________________________________________________________________________
 F3=終了プログラム   F6=停止点の追加/消去   F10=ステップ     F11=変数の表示
 F12=再開            F17=ウォッチ変数   F18=ウォッチの処理   F24=キーの続き
停止点がプロシージャー TEST のステートメント 2 に追加されました。

その他のすべてのデバッグ・ビューについて、デバッガー内でプログラムの行番号 の ほかにステートメント番号を使用できます。例えば、以下のリスト・ビューの サブプロシージャーの始めにブレークポイントを設定するには、次のように入力します。

BREAK 34

または

BREAK FmtCust/2600

いずれの場合も、ブレークポイントは 'P FmtCust         B' 行に設定されます。

図 107. ステートメント番号を使用したブレークポイントと、OPTION(*SRCSTMT) の指定されたリスト・ビューの設定
                             モジュール・ソースの表示
 PROGRAM:   MYPGM          LIBRARY:   MYLIB          MODULE:   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
                                                                        終わり
 デバッグ . . 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

と入力します。