RPG

564. デバッグのヒント

STRDBGデバッグの開始コマンドの使い方のヒントを
もう少し。

■ ① *YES *YES でOPMもソース・デバッグ

                             デバッグ開始  (STRDBG)                       
                                                                          
 選択項目を入力して,実行キーを押してください。                           
                                                                          
 プログラム  . . . . . . . . . . > STR5250CL      名前 , *NONE            
  ライブラリー  . . . . . . . . . . . >   CHAO.COM     名前 , *LIBL, *CURLIB   
                値の続きは+                                              
                                     *LIBL                                
 省略時のプログラム  . . . . . .   *PGM           名前 , *PGM, *NONE      
 最大 トレース・ステートメント 数  . . . . .   200            数値                    
 トレース・データ満杯時の処理      *STOPTRC      *STOPTRC, *WRAP          
 実動ファイルの更新  . . . . . . > *YES          *NO, *YES                
OPM ソース・レベル・デバッグ   . > *YES          *NO, *YES                
 サービス・プログラム  . . . . .   *NONE          名前 , *NONE            
  ライブラリー  . . . . . . . . . . .                  名前 , *LIBL, *CURLIB   
                値の続きは+                                              

のようにして UPDPROD(*YES) OPMSRC(*YES) として二つの*YESを
いつも入れておけば OPMソースでも対話式でデバッグすることができる。
もちろんOPMのソースは *SRCDBGや *SOURCEとして対話式ソース・デバッグを指定して
あらかじめコンパイルしておく必要がある。

■ ② WATCH で変数が変化したら停止

デバッグと言えば EVALコマンドを多用していると思うが

WATCH (変数名)

としておけば変数の値が変化したときに停止する。
例えばCLPであれば

WATCH &OUTPUT

とすると変数 &OUTPUT の値が変わったときに
停止するので障害がどこで発生しているのかを
迅速に調べることができる。
これは便利なのでぜひお試しいただきたい。

■③ ATTRで変数の属性を表示

ATTRコマンドを使えばその変数の長さなどの属性を
すぐに表示してくれるので大いに役に立つ。
例えば

ATTR &AINAME

とすれば変数&AINAMEの長さや属性が表示される。
いちいちソースの定義を調べる必要はない。