VOS debug で条件式を使う2010年06月14日 15時30分21秒

VOS debug にて条件式を使う方法。別に、VOS だけでなく、gdb 等の他のデバッガにもあるのだが、文法が違うためすぐに忘れてしまう。既に VOS から離れてしまっているので忘れる前に。

デバッガを起動し、break の後に条件式を入れる。なお、以下のコードは PL/1 に対する式なので、id 部分は VOS C 言語の char_varying 相当になる。C 言語内で文字列を比較するのには各文字毎を比較する必要がある。


db? break 59 (if employee.id = 'uyota' then (display employee.id; continue) else (continue))

59 行目停止し、employee 構造体の id が uyota だったら、内容を表示して続行。それ以外だと、そのまま続行になる。表示以外でも、値を設定することも出来る。

デバッガで値を自由かつ効率的に変えられると、障害の再現や、修正の有効性などが、コードを変更したり、コンパイルしたりしなくても手軽に検証できる。

特にコードを変更する前から、既に変更後の正しい結果を出せる様になるので、事後処理の書類と修正結果の書類を提出して、対応の書類を別途進めて貰っている間に、実際のコードの変更とテストなど開発側の準備を並列して進めるなどといった事が出来るようになる。