3

c ++を使用してWindows 7でVS 2008でコンパイルしたアプリケーションがあり、これをキャッチしようとして例外が発生しました(リリースでコンパイルしたため)pdbファイルを作成しました。スタックの一部を確認しますが、エラーの場所に関するヒントは得られません。このエラーを発生させる無料の方法を探しています。これを行う無料の方法をお勧めできますか?

4

1 に答える 1

4

Visual C++ には、かなり優れた C ランタイム メモリ デバッグ ツールが組み込まれています。

を参照#define _CRTDBG_MAP_ALLOCするか、CRT デバッグ ヒープメモリ リーク検出の有効化を参照してください。

以下を検出できます。

  • メモリリーク
  • 二重削除
  • 割り当てられたメモリの末尾を過ぎたところへの書き込み

問題の割り当てが常に同時に発生する再現可能なケースがある場合は、 set it を使用して、その割り当てでデバッガーに侵入できます。

また、BoundsChecker、HeapAgent、Purify などの商用ツールや、Fortify などの無料ツールもあり、もちろん自作することもできますが、VisualStudio に組み込まれているツールを使用すると、長い道のりを歩むことができます。

于 2010-05-12T20:36:31.297 に答える