VS2008, C. 일부 미리 빌드 된 라이브러리를 사용합니다. 내가 디버거와 호출되는 라이브러리 함수를 통해 내 코드를 단계별로 할 때,이 얻을 :가능한 힙 손상을 디버깅하는 방법은 무엇입니까?
HEAP [unit_test.exe] : 힙 중단 점을 트리거하고있다 35c70 윈도우 근처 최선을 다하고 범위의 마지막 항목 누락 unit_test.exe에 있습니다.
unit_test.exe 또는로드 한 DLL에 버그가 있음을 나타내는 힙 손상이 원인 일 수 있습니다.
unit_test.exe에 포커스가있는 동안 사용자가 F12 키를 누를 때도 발생할 수 있습니다.
출력 창이 더 많은 진단 정보를 가지고있을 수 있습니다.
디버깅하는 방법에 대한 아이디어가 있으십니까?
업데이트 : 코드를 리팩토링하여 printf()를 수행 할 때 팝업이 표시되는지 확인합니다. 나는 또한 무료()가있을 때 그것을 얻는다. 그 줄을 주석 처리하고 malloc()이있을 때 힙 손상 팝업 대화 상자가 나타납니다.
: 어떤 라이브러리와 어떤 기능을 사용하고 있습니까? – holgac
코드에 따라 정확히 몇 가지 옵션을 사용할 수 있습니다. 힙 공간을 직접 할당하고 수정하는 경우 포인터 중 하나에서 디버거에 감시 점을 설정하고 버퍼 오버런과 같은 일부 작업이 수행하지 않아야하는지 확인하려고 할 수 있습니다. – AlcoJaguar
@AlcoJaguar malloc을 무료로 호출합니다 (플랫폼은 Windows XP 임). 모든 포인터에 시계를 넣는 것이 었습니까? – likejiujitsu