«  | トップページ |  »

2004年11月 4日 (木)



デバグ続き。

どうもこれは割り込みとバックグラウンドでのメモリ共有の問題のような気がしてきた。
この手のバグの王道(?)。
このたぐいのバグは、たいがい発見が難しく(めんどくさく?)、バグはなかな見つけられないものだ。

こんなプログラムを組んでしまうのが悪いのだけれど...
(マウスの制御仕様が)自分の中で完結してない状態で、つぎつぎ新しい仕様を盛り込むので、やってしまったような...

------

いろいろある処理の優先順位を、(理論上)破綻しない範囲でいろいろ変えてシステムに揺さぶりをかけ、様子を見ることで絞り込んだ。

具体的には、バックグラウンド処理される、10個くらいの関数への分岐の評価の順番を入れ替えてみる。

いくつかやってみると、ビンゴ。
もう、そこらじゅうで現象が発生する組み合わせがあった。多分ここだ...

------

プログラムのアルゴリズムを書き直せばいいのだけれど、いつものパターンで、設計がよろしくなくて(フラグの意味づけが良くない)難しそうだったので、まとめて割り込み禁止にしてしまう方法をとった。
あまり好きな方法で無いけれど、背に腹ということで。

なんだかうまく行ってるようだ。
バグがここだけならいいのだけれど...

|

«  | トップページ |  »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: :

«  | トップページ |  »