Some Days You Get the Bear

IT系エンジニアの、日々の気づきや考えたこと。

デバッグではコードを読みすぎてはいけない

結果を見よ。特にレジスタの中身は。
セットしたからといって、セットされてるとは限らない。
セットする手順が決まっていたり。プロテクトがかかっていたり。
コントロールレジスタにセットしたことがステータスレジスタにちゃんと反映されているか、とか。

それから、メモリアクセス例外。
2バイト境界に4バイトアクセスすると。
全く同じ処理なのに、引数が変わっただけで動かなくなったりする。

単にコードを読んでるだけだと、コードばかり読んでては、気がつかない不具合は多い。

 
 
それからなにより、いつも思うことは、

「まずは自身のコード疑え」

ということ。
既存のコードや周りのコードがついつい気になってしまうけれど、
とことん自分のコードの疑いを晴らしてからでも遅くない。
自身のミスに気付くためにも、積極的に ASSERT を入れるだとか
気付けるしくみを入れておかないといけないな。

「ときどき動かない」というのにも、私は弱い。
「連続でやると」とか「このケースだけ」みたいなやつ。
「ふつうのときに動いているんだし、違いはないんじゃないの?」と安易に思ってしまう。
何度か現象が起こっているのであれば、「そこに何かある」と思って見なければ。