간단히 WIN32에서 MFC의 메모리 누수 체크하는 방법

1. main.cpp든 어디든 소스파일의 가장 윗줄에

#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

위 세줄을 붙여넣기 합니다.


2. 모든 에플리케이션이 종료되는 위치에서

_CrtDumpMemoryLeaks();

를 호출해 줍니다.

ex)

    ZeroMemory( &msg, sizeof(MSG) );
    while( msg.message!=WM_QUIT )
    {
        if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
            cApp.Process();
            cApp.Render();
        }
    }
 
    _CrtDumpMemoryLeaks();               <————- 여기쯤 되겠죠
 
    return 0;
}
 
 
 
3. 친절한 디버거씨가 바운스체커보다는 덜 친절하지만, 어디어디 메모리 얼마 샌다고  알려줍니다.
 
 
아래는 MSDN원문 링크입니다. 친절한 한글버전입니다.

http://msdn.microsoft.com/library/kor/default.asp?url=/library/KOR/vsdebug/html/vxconenablingmemoryleakdetection.asp

Leave a Reply