デバッグではコードを読みすぎてはいけない
結果を見よ。特にレジスタの中身は。
セットしたからといって、セットされてるとは限らない。
セットする手順が決まっていたり。プロテクトがかかっていたり。
コントロールレジスタにセットしたことがステータスレジスタにちゃんと反映されているか、とか。
それから、メモリアクセス例外。
2バイト境界に4バイトアクセスすると。
全く同じ処理なのに、引数が変わっただけで動かなくなったりする。
単にコードを読んでるだけだと、コードばかり読んでては、気がつかない不具合は多い。
それからなにより、いつも思うことは、
「まずは自身のコード疑え」
ということ。
既存のコードや周りのコードがついつい気になってしまうけれど、
とことん自分のコードの疑いを晴らしてからでも遅くない。
自身のミスに気付くためにも、積極的に ASSERT を入れるだとか
気付けるしくみを入れておかないといけないな。
「ときどき動かない」というのにも、私は弱い。
「連続でやると」とか「このケースだけ」みたいなやつ。
「ふつうのときに動いているんだし、違いはないんじゃないの?」と安易に思ってしまう。
何度か現象が起こっているのであれば、「そこに何かある」と思って見なければ。