C400

137. C/400をデバッグするには

デバッグで変数値を調べるには」でchar変数を

DSP *buffer:s

のようにして表示する方法を紹介したが
整数値intやlong はこの方法では表示できない。

 「変数が表示不能である

 とのエラーが出てしまう場合がある。
この原因はプログラムが最適化されてコンパイルされているためである。
最適化(OPTIMIZE)パラメータが 30と指定されてコンパイルされている場合は
このエラーとなってデバッグで変数値を表示できなくなってしまう。

この回復処置としては再コンパイルするのではなく

CHGPGM PGM(OBJLIB/MYPGM) OPTIMIZE(*NONE)

のようにして最適化を *NONE に変更するとデバッグで変数値を
表示できるようになる。
またこのように最適化を*NONEにしておかないとC/400の場合は停止点で停止しないという
バグを時折り発生する。

いずれにせよC/400のデバッグには

CHGPGM OPTIMIZE(*NONE)

を忘れないように。

int の表示は dsp i + [実行] で表示できるし
HEX表示したいときは RPG のデバッグと同様に DSP buff[i]:x のように語尾に ‘:x’ を付加すればよい。