ユーザ用ツール

サイト用ツール


実用編:ヒープのメモリリーク診断

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

実用編:ヒープのメモリリーク診断 [2009/02/03 07:50]
admin 作成
実用編:ヒープのメモリリーク診断 [2013/12/23 09:08]
ライン 1: ライン 1:
-====== ヒープのメモリリーク診断 ====== 
  
- 
-マイクロソフトのCランタイムにはヒープメモリのリーク診断機能があります。 
- 
-stdafx.h(またはすべてのソースファイルがインクルードするヘッダファイル)に以下を追加。 
- 
-<code cpp> 
-#if _DEBUG 
-#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 (外部編集)