X作成講座 on FB[11] デバッグ
FBではコードリソース作成時にデバッガが使えません。初心者にとってこれは辛いです。 XCMD が思うように動かなかった時、どこのルーチンが問題を起こしているのか、その時の変数の値がどうなっているかを調べられないと、デバッグしようにも手がかりが掴めません。
ここではFBでXを作成する時に簡単に使えるデバッグテクニックを少し紹介します。
・BEEP を使う
目的のルーチンを通っているか、そのルーチンが何回実行されたかが簡単に分かります。システムの警告音に、短くて耳障りの良いものを登録しておくのがコツです。多少無音部分があった方が回数を数えやすいでしょう。
・answer を使う
FBは比較的文字列を扱い易いので、この方法も結構簡単に出来ます。例えば変数 abc& の値を表示させるには、
FN NumToStr( xCmdPtr&, abc&, dValue$ ) dMsg$ = "answer " + CHR$(34) + dValue$ + CHR$(34) FN SendHCMessage( xCmdPtr&, dMsg$ )とします。変数の値を表示したダイアログが表示されて、値を確認することが出来ます。 NumToStr と SendHcMessage はグルールーチンなので xCmdPtr& が必要です。この方法を使う時はそのサブルーチンに xCmdPtr& を渡しておくのを忘れないで下さい。
FN NumToStr( xCmdPtr&, abc&, dValue$ ) dMsg$ = "put " + CHR$(34) + dValue$ + CHR$(34) + " into cd fld 1" FN SendHCMessage( xCmdPtr&, dMsg$ )これを実行すると、変数の値をフィールドに書き出すことが出来ます。変数が連続して変化する時に、その様子をモニターすることだって出来ますね。
myTics& = FN TICKCOUNT + 10 WHILE FN TICKCOUNT < myTics& WENDこの TICKCOUNT はシステムがスタートしてからの ticks(1/60秒単位)です。このプログラムでは 10/60秒だけ「空ループ」によって動作を遅らせます。遅らせる時間を引数で指定出来るようなサブルーチンとして用意しておいと便利かも知れません。