2013-08-07 5 views
1

Я очень новичок в отладке дампов, поэтому у меня все еще есть вопросы.Предварительный просмотр кучи из файла дампинга с помощью Visual Studio

Я прочитал несколько вопросов об отладке дампов, и теперь я привязал свой код к дампу и вижу некоторые значения переменных.

Мой вопрос - как просмотреть необработанные данные кучи. Я хочу это, потому что дамп очень большой, более 4 ГБ, поэтому где-то большая утечка памяти, что, вероятно, вызвало крушение. Так что мы будем искать какие-то строки, что осталось.

BTW. Я кодирую с C++ и использую Visual Studio 2012 для отладки, но я могу загрузить некоторые другие программы :)

+0

Есть лучшие способы сделать это, в том числе, не дожидаясь, пока свалка не получит гигантскую и просто перечислить содержимое кучи занимает 10 минут. Желательно отладчик кучи, такой как umhd.exe. Или с помощью отладочного распределителя типа ''. –

+0

Надеюсь, что кто-то даст вам более точный ответ, но вы можете быть заинтересованы в недавнем плагине windbg Sasha Goldshtein: http://blogs.microsoft.co.il/blogs/sasha/archive/2013/08/05/ поиск-и-отображение-C-кучи-объекты-в-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

Смежные вопросы