2008년 06월 29일
메모리릭 발생 위치에 Breakpoint 설정하기
출처 : 인터넷에서...
메모리릭 발생 위치에 Breakpoint 설정하기
메모리릭이 발생하면 디버거를 종료했을 때 이런 메시지가 출력된다.
Detected memory leaks!
Dumping objects ->
{103144} normal block at 0x01C79B18, 12 bytes long.
Data: < > 18 9B C7 01 18 9B C7 01 CD CD CD CD
_crtBreakAlloc = 103144;라고 적어주고 디버거를 실행하면 이 메모리를 할당하려고 할 때 프로그램을 Break 시켜준다. 디버그 버전에서는 힙에 메모리를 할당할 때마다 crtdbg 라이브러리(이렇게 표현해도 되나?)가 이 변수를 체크해서 Break 해주는 것이다. 디버깅중에 Watch 윈도우에서 변수 값을 바꿔서 다른 메모리 할당 번호에서 멈출 수도 있다. 전역 변수 값을 변경하는 대신에
_CrtSetBreakAlloc(103144);라고 함수를 호출해주어도 마찬가지 효과가 있다.
Detected memory leaks!
Dumping objects ->
{103144} normal block at 0x01C79B18, 12 bytes long.
Data: < > 18 9B C7 01 18 9B C7 01 CD CD CD CD
_CrtMemDumpAllObjectsSince(0);
}
# by | 2008/06/29 23:02 | Debugging | 트랙백 | 덧글(0)



