2011-02-01 5 views
2

私はVisual StudioでCでプログラムを開発しています。Visual Studioで自分のプログラムのメモリリークを検出できる方法はありますか?または一般的に任意のメモリリーク検出ライブラリWindows開発者(Linuxのvalgrindに似ています)....私に教えてください。ありがとう。Windowsで開発中のプログラムでメモリリークを検出する

あなたはあなたのプログラムの開始時に #include <crtdbg.h>

は、次のコードを入力することができる

答えて

2

:あなたは終了コードを返す前に

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEMDF | _CRT_LEAK_CHECK_DF); 

したり、プログラムの最後には:

_CrtDumpMemoryLeaks(); 

最初の方法は、プログラムが終了するたびにメモリリークを自動的に表示し、コードが1行だけであるためです。 _CrtDumpMemoryLeaks()を使用すると、プログラムが潜在的に終了する可能性のあるどこにでも置く必要があります。

プログラムが終了すると、メモリリークが出力ウィンドウに表示されます。これはビジュアルスタジオでのみ動作します。

これは割り当てが行われた場所のファイルと行番号を表示しないと思います。

#ifdef _DEBUG 
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__) 
#endif 
+0

mallocの割り当てのファイルと行番号を示しています(Cのように)。 – noelicus

0

私は専門家のプログラマだんが、私はメモリリークをチェックするためにインテルパラレルスタジオを使用:割り当てが行われた場所をC++では、あなたが表示するnewキーワードを再定義することができます。非常に信じられないほど、ビジュアルスタジオにシームレスに統合し、非常に簡単なコントロールを提供して、プログラムのあらゆる種類のエラーを検出します。インストールして実行するだけで、メモリエラーを見つけることができます。

30日間のトライアルがありますが、値札のみ問題でした。

0

Visual Studioでの作業には、すでに開発した信頼性の高いプラグインがあります。私にとっては、私はクリーチャーが好きです、使いやすいです。

1

私はVisual Leak Detectorを使用します。これは無料で非常に効果的です。ヘッダファイル<vld.h>をプログラムに含めるだけです。
割り当てられて解放されていないメモリの完全なスタックトレースを提供します。

関連する問題