内容へ移動
C++プログラマのためのC++/CLI入門
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
TOP
»
実用編
»
ヒープのメモリリーク診断
実用編:ヒープのメモリリーク診断
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== ヒープのメモリリーク診断 ====== マイクロソフトのCランタイムにはヒープメモリのリーク診断機能があります。 stdafx.h(またはすべてのソースファイルがインクルードするヘッダファイル)に以下を追加。 <code cpp> #if _DEBUG #include <crtdbg.h> #define malloc(size) _malloc_dbg(size, _NORMAL_BLOCK, __FILE__, __LINE__ ) #define calloc(s1,s2) _calloc_dbg(s1, s2, _NORMAL_BLOCK, __FILE__, __LINE__ ) #define realloc(p,s) _realloc_dbg(p, s, _NORMAL_BLOCK, __FILE__, __LINE__) #define free(p) _free_dbg(p, _NORMAL_BLOCK) inline void* operator new(size_t nSize, LPCSTR lpszFileName, int nLine) { return _malloc_dbg(nSize, _NORMAL_BLOCK, lpszFileName, nLine); } inline void operator delete(void *p) { _free_dbg(p, _NORMAL_BLOCK); } #define DEBUG_NEW new(__FILE__, __LINE__) #define new DEBUG_NEW #endif </code> main()の最初に以下のコードを追加。 <code cpp> #ifdef _DEBUG _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF | _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)); #endif </code> このようにすることで、プログラムの終了時、もしメモリリークがあった場合デバッガのアウトプットウインドウにそれが表示されるようになります。
/var/www/html/virtual/cppcli/data/pages/実用編/ヒープのメモリリーク診断.txt
· 最終更新: 2013/12/23 09:08 (外部編集)
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ