あたしってホント馬鹿・・・

仕事で作ったプログラムを試してもらっていたら、ある機能だけ動かない、という事態に遭遇。手元の環境で同じ条件で試してみても再現できないので困っていた。
いろいろ調べていくと、デバッガ上で動かすとOK、デバッガなしで動かすとNG、というところに行き着いた。その原因を追っていくと・・・・未初期化変数。OH!NO!こんな古典的なトラップに引っかかるなんて!
どうやら後から追加したbooleanパラメータをコンストラクタで初期化するのを忘れていて、なおかつその初期値が"true"相当だったのですが、デバッガで実行するとそこに0xCDを入れてくれるから"true"相当、デバッガなしだと実行状態に依存、今回の場合では概ね0(=false)相当で機能が動かないバグになっていた、と。
デバッグ中だけ出てくる(or出ない)不具合がある、という場合は、デバッガ(VisualStudio)が新しく確保したメモリに全部0xCDを入れている、というところをチェックしてみるといいかも?


(4/8)