블로그 이미지
smstock

카테고리

분류 전체보기 (54)
취미 (8)
공부 (32)
낙서장 (12)
Total
Today
Yesterday

달력

« » 2024.12
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

공지사항

태그목록

최근에 올라온 글

_CrtDumpMemoryLeaks();  :  메모리 누수 위치 찾는다(Main 끝에 삽입)

_CrtSetBreakAlloc(num);  : 메모리 누구 위치에서 브레이크

::_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);  : STL에서 오류 날 경우 사용


사용법

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

프로그램 시작부분(여러군데에서 종료시 사용, 프로그램 종료시 자동으로 _CrtDumpMemoryLeaks() 호출)
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

or

프로그램 종료시
_CrtDumpMemoryLeaks();


주의점
 - _DEBUG
가 정의된 디버그 빌드에서만 발생(릴리스 빌드에서는 일반적인 malloc 함수와 free 함수가 사용)
 - #include 문은 위의 순서를 따라야 함. 순서를 변경하면 함수를 사용해도 제대로 작동하지 않음
 - _CRTDBG_MAP_ALLOC가 정의되면 누수된 메모리가 할당된 파일을 찾을 수 있음. 파일 이름 뒤에 오는 괄호 안의 숫자는 파일에서의 줄 번호


방식
 - _malloc_dbg_free_dbgmallocfree 함수를 매핑하는 방식


기타
 - _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_DEBUG ); 를 통하여 출력창이 아닌 다른곳으로 출력가능


참고 : http://msdn.microsoft.com/ko-kr/library/e5ewb1h3(v=VS.90)


 

 

 

Posted by smstock
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함