Visual Studioで作成するコンソールアプリケーションのメモリリークを検知する
21 August 2012
Visual Studio 2010からコンソールアプリケーションのプロジェクトを作成した際に、メモリリークの検出を有効にする設定を以下に示します。
#include "stdafx.h" #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> #ifdef _DEBUG #define new ::new(_NORMAL_BLOCK, __FILE__, __LINE__) #endif int _tmain(int argc, _TCHAR* argv[]) { _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); new int; // <- ここでメモリリーク return 0; }
上記のコードを実行すると、以下の内容が出力ウィンドウに出力されます。
Detected memory leaks! Dumping objects -> c:\projects\leaktest\leaktest\leaktest.cpp(17) : {111} normal block at 0x00796930, 4 bytes long. Data: < > CD CD CD CD Object dump complete. プログラム '[1292] LeakTest.exe: ネイティブ' はコード 0 (0x0) で終了しました。
上記の内容については以下のサイトを参考にしました。
blog comments powered by Disqus