http://blog.naver.com/kienuu/10015143165
분류: Win32/MFC
이름: 박상백(출처 : http://www.yunubeback.com/bbs/zboard.php?id=DevBoard)
http://www.yunubeback.com/bbs/data/DevBoard/Funny_Memory_Values.mht
http://www.yunubeback.com/bbs/data/DevBoard/Memory_Debug_Codes.mht
디버깅중이나 에러 발생시 마주치는 이상하기도 하고 우습기도 한 메모리주소가 있습니다.
이러한 메모리주는 일정하게 특수한 값으로 설정되곤 하는데 그 값들은 각각 의미를 가지고 있습니다.
Microsoft Visual C++ Runtime Library (DEBUG_NEW가 선언된 상태)
(1) 0XCD, 0xCDCD, 0xCDCDCDCD
- malloc() 또는 new로 객체가 생성되고 아직 Write한 적이 없는 상태
(2) 0xFD, 0xFDFD, 0xFDFDFDFD
- "No man's land"
- 요청한 블럭에 속하지 않는 위치에 존재하는 몇Bytes가량의 금지구역
- 메모리 경계검사를 위해 삽입됨
(3) 0xDD, 0xDDDD, 0xDDDDDDDD
- free() 또는 delete로 객체를 Free한 상태
Compiler Initialization
(1) 0xCC, 0xCCCC, 0xCCCCCCCC
- VC++에서 /GZ옵션을 넣어 컴파일하는 경우에만 적용됨
- 초기화되지 않은 변수들은 모두 이러한 형태의 값을 갖게 됨
Windows NT Memory Codes
(1) 0xABABABAB
- LocalAlloc()함수에 의해 할당된 메모리 블럭
(2) 0xBAADF00D
- "Bad Food"
- LocalAlloc(LMEM_FIXED, ...)를 통해 할당된 메모리 블럭이지만 아직 Write한 적이 없는 상태
(3) 0xFEEEFEEE
- HeapAlloc() 또는 LocalAlloc()함수에 의해 할당될 예정인 메모리
- HeapFree()함수를 통해 이미 Free된 상태
* 자세한 내용은 첨부파일 참조
물론 아래 구문으로 전부 예외 처리가 가능하기야 하지만서도 ..ㅎㅎ
try{
}
catch(...)
{
}
'디버깅 & 스킬 > 디버깅 & VS Debugging' 카테고리의 다른 글
Visual Leak Detector 메모리릭 감지프로그램 vs2008 이하(포함) 으로 됨 (0) | 2012.11.23 |
---|---|
_CrtSetDbgFlag , _CrtDumpMemoryLeaks 를 동시에 쓰면 안된다 (0) | 2012.11.23 |
메모리 누수 없는 코드 만들기 (0) | 2012.11.23 |
0xC0000005 오류 (0) | 2012.11.23 |
메모리 누수 사용법 , 메로리릭 찾기, 잘된 정리 (0) | 2012.11.23 |