티스토리 뷰

아래의 소스를 추가
#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/03   »
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
31
글 보관함