2011-11-22 3 views
1

MSDN에 따라 Visual Studio에서는 힙 손상을 추적하기 위해 기본적으로 0xFD로 설정된 "no man 's land"바이트가 추가 된 디버그 모드에서 특수 힙을 사용합니다. 이러한 값을 덮어 쓰면 시각적으로 중단되도록하는 방법이 있습니까? 난 아무데도이 정보를 찾을 수 있으며 MSDN 당신은 때 디버그 모드에서 _CrtSetDbgFlag()를 사용하여 시도 할 수디버그에서 힙이 손상되면 VS 2010을 강제로 중단시키는 방법?

감사

+0

Ok 일부 힙 손상 문제를 해결할 수 있었지만 "EXIT_SUCCESS 반환;"중에 힙 손상이 여전히 남아 있습니다. 내 프로그램 라인, 심지어 내가 _ASSERTE (_CrtCheckMemory()) 할 생각; 돌아 오기 바로 전에. 어떤 종류의 힙 부패/문제가 이것을 일으킬 수 있습니까? – lezebulon

답변

3

을 제안처럼 수동으로 memstat를 덤프하는 것보다 매우 유용합니다, 더 많은 것 같다.

Reference.

+0

덕분에 많이 찾았습니다. 이제 일부 힙 손상 문제가 수정되었으므로 "EXIT_SUCCESS 반환"중에 일부 힙 손상이 여전히 남아 있습니다. 내 프로그램 라인, 심지어 내가 _ASSERTE (_CrtCheckMemory()) 할 생각; 직전 – lezebulon

0

다음에 메모리의 위치가 변경되면 실행을 일시 중지하려면 data breakpoint을 설정하십시오. 부패가 발생할 곳을 미리 알아야합니다. 메모리가 할당 된 곳과 사람의 땅이 0xFD로 설정되지 않은 곳에서 규칙적인 중단 점을 설정해야 할 수도 있습니다. 그 시점 이후에 메모리에 위치가 있으며 데이터 중단 점 만 설정하면됩니다.

0

AppVerifier을 신청서에 사용하지 않는 이유는 무엇입니까?