티스토리 뷰

아래의 소스를 추가
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

그리고 아래의 소스를 프로그램이 종료될때 입력.

_CrtDumpMemoryLeaks();



디버그 모드일때

#define new DEBUG_NEW

처럼하거나

#define DEBUG_NEW new(__FILE__, __LINE__)
#define new DEBUG_NEW

이렇게 넣으면 된다. 디버그 모드일때 해야한다는게 중요.



CMemoryState::DumpAllObjectsSince와 CMemoryState::Difference를 이용하는것도 한 방법.

BOOL Difference(
  const CMemoryState& oldState,
  const CMemoryState& newState  
); 

이전 상태의 메모리와 이후 상태의 메모리를 비교하는것이 가능하다. 아래가 하나의 예.

CMemoryState msOld, msNew, msDiff;

msOld.Checkpoint();
//소스 실행

//소스 실행 끝
msNew.Checkpoint();

if(msDiff.Difference(msOld , msNew))
{
    TRACE("Memory leaked!\n");
    msDiff.DumpStatistics();
}
 
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함