どんなバグでも高確率で原因箇所を突き止める方法

ただし、再現性の高いバグに限る。

  1. ブログラムの半分をコメントアウトします。
  2. プログラムをビルドして実行します。
  3. 実行した結果
    • バグった⇒さらに半分コメントアウトします。
    • バグらなかった⇒コメントアウトを半分解除します。
  4. 2.に戻って、コメントアウト範囲が十分小さくなるまで繰り返します。
  5. 原因箇所がしぼられます。

つまり人力二分探索です。

バグの原因がまったくわからないときとか、デバッガもprintf()もない環境でのデバッグとか、それこそ泣きそうになりますが、この方法なら着実に原因箇所に近づけます!この方法には何度も助けられました!

しぼられた範囲がバグの直接の原因でないことも多いものの、この作業をすることで大抵、何らかの糸口がつかめます。