C++で書かれたプログラムの改造をしてますが配列の上限を超えた読書きしてる箇所が多々あってバグだらけのプログラムだというのが受注してから判明してしまいました。
でもバッファオーバーランはコンパイル時も実行時も簡単には検出できません。
OSにしてみればプログラムが所有しているスタックやヒープ内であれば配列の境界なんて関係ないわけです。
そこで思い切ってすべての配列をstl::arrayに変更してみました。
int abc[100]; <-- これを
std::tr1::array
デバッグモードでコールスタックを調べればバグコードが調べれるわけですよ。