2013-08-07 5 views
1

디버깅 덤프에 대한 새로운 기능이므로 몇 가지 질문이 있습니다.Visual Studio를 사용하여 덤프 파일의 힙을 미리 봅니다.

디버깅 덤프에 대한 몇 가지 질문을 읽었습니다. 이제 코드를 덤프에 첨부하고 변수 값을 볼 수 있습니다.

제 질문은 원시 힙 데이터를 미리 보는 방법입니다. 나는 덤프가 매우 크기 때문에 4GB가 넘기 때문에 어딘가에서 큰 메모리 누수가 발생했기 때문에 충돌이 발생했을 가능성이 큽니다. 그래서 몇 가지 문자열을 찾고있을 것입니다.

BTW. C++로 코딩하고 디버깅을 위해 Visual Studio 2012를 사용하지만 다른 프로그램을 다운로드 할 수 있습니다.

+0

는 덤프가 거대한 때까지 기다리고 단지 힙 함량이 10 분 소요 나열되지 않은 등을 할 수있는 더 나은 방법이 있습니다. umhd.exe와 같은 힙 디버거가 좋습니다. 또는 ''과 같은 디버그 할당자를 사용하십시오. –

+0

누군가가 좀 더 정확한 답변을 해주기를 바랍니다. 그러나 최근 Sasha Goldshtein의 최신 windbg 플러그인에 관심이 있습니다. http://blogs.microsoft.co.il/blogs/sasha/archive/2013/08/05/ 검색 및 표시 -c-heap-objects-in-windbg.aspx. 아직 사용하지는 않았지만 유망한 것으로 보입니다. – lowleveldesign

답변

2

WinDbg 및 !heap 명령을 사용하여 프로세스의 Win32 힙을 검사해야합니다. 유용 할 수있는이 명령에는 여러 가지 변형이 있습니다. !heap -s -h 0은 통계를 제공하며 !heap -h 0은 모든 힙의 모든 블록을 나열합니다.

내 heap_stat.py 디버거 스크립트를 고려할 수도 있습니다. vtable 포인터가있는 객체에 대해 힙 메모리를 검색하여 힙 공간을 많이 차지하는 객체 범주를 식별합니다.

https://github.com/goldshtn/windbg-extensions/blob/master/heap_stat.py

관련 문제