私は現在、私のチームが取り組んでいる大規模で複雑なプロジェクトで直面した最も悪いバグの1つに直面しています。私たちはプログラミング言語としてC++を使用しています。現在は、Visual Studio for developmentを使用していますが、最終製品はクロスプラットフォームで動作するように設計されています。一見ランダムなクラッシュを引き起こす状態破損バグの記述と発見
バグ:
実行の一見ランダムな点でのクラッシュをトリガし、当社のシステムにバグがあります。クラッシュの原因は通常、プログラムが実行されるたびに変化するアドレスの読み取りアクセス違反です。時にはヒープ破損エラーも発生することがあります。コールスタックは、私たちのコードベースの変種ポイントにつながり、まれにバグが存在しないいくつかの外部ライブラリ(私たちの場合はLua)につながります。
このバグが過去4ヶ月間にわたって発生しているようです。その時間の前に、大体、私のチームメンバーの何人かは、フロントエンドプログラムがマナーと場所でクラッシュし、現在起こっていることに非常に似ているのを見ました。
いくつかの詳細:
私たちのコードベースが大きい(コメントは除く)++の純粋なCの約800K行で、3年の歳月をかけて開発されました。 現在のプロジェクトの重量は約300Kです。私たちは過度のユニットテストや他の方法でアサーションやスマートポインタなどが発生する前にバグを解消しています。
他の人と私はこのバグを2週間以上見つけようとしています。それは私のために悪夢以上になってきています。このような複雑なプロジェクトでは、現在の複雑さに直面して、古いprintfデバッグも失敗するようです。
私の質問我々はここに直面しているバグはどのような
?これには名前がありますか?この種のバグは、他の大規模なプロジェクトで多かれ少なかれ発生しますか?
さまざまなユーティリティ、さまざまなプラットフォーム、さまざまなビルド設定を使用して、2週間の無駄なデバッグを行った後で、何を見つけることができますか?
(私の以前の質問は閉鎖されたので、私はより良い、より詳細で、この時間は、それを定式化するために、リンクしようとしています:https://stackoverflow.com/questions/7154645/how-is-this-kind-of-bug-called)
Arfでは、散発的なバグが最悪です。デバッグツールの使用方法を学ぶ時間。 –