次の方法で共有


メモリ割り当ての追跡

更新 : 2007 年 11 月

このトピックの内容は、次の製品に該当します。

Edition

Visual Basic

C#

C++

Web Developer

Express

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

Standard

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

Pro/Team

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

トピックは該当しますが、コマンドは既定では非表示です

既定で非表示のコマンド

MFC では、通常 new 演算子が使用される場所で DEBUG_NEW マクロを使用して、メモリ リークの位置を特定できます。プログラムのデバッグ バージョンでは、DEBUG_NEW はメモリを割り当てた各オブジェクトのファイル名と行番号を記録します。プログラムのリリース バージョンをコンパイルするときは、DEBUG_NEW は単に new 演算として機能し、ファイル名や行番号の情報を記録しません。したがって、プログラムのリリース バージョンの実行速度が低下することはありません。

ソース ファイルで次のように DEBUG_NEW マクロを定義すると、プログラム全体を書き直さなくても、new の代わりにこのマクロを使用できます。

#define new DEBUG_NEW

オブジェクトのダンプを実行すると、DEBUG_NEW で割り当てられた各オブジェクトについて、メモリが割り当てられた場所のファイル名と行番号が表示されます。この情報を使用して、メモリ リークの原因となったコードを特定できます。

MFC フレームワークのデバッグ バージョンでは自動的に DEBUG_NEW が使用されますが、プログラマが記述するコードでは自動的には使用されません。DEBUG_NEW を使用するには、DEBUG_NEW を明示的に使用するか、上記のように #define new を使用する必要があります。

参照

その他の技術情報

MFC におけるメモリ リークの検出