Нужна помощь в отладке минидампа с WinDbg - PullRequest
1 голос
/ 15 июля 2010

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

У меня есть набор мини-дампов из 32-разрядного приложения, которое работало на 64-разрядной Windows 2008. 32-разрядная Visual Studio в моем 32-разрядном Vista Business не затрагивала их вообще, поэтому я пытался открыть их в WinDbg.

У меня нет точных соответствующих файлов .pdb (мы только начали сохранять их ПОСЛЕ этого конкретного выпуска), но у меня есть .pdbs, созданные на той же машине с тем же кодом. У меня также есть доступ к точному исполняемому файлу, который создал мини-дампы.

Я нашел изящное небольшое приложение под названием ChkMatch, которое может сделать .pdbs совпадающим с исполняемым файлом ... единственное отличие (согласно ChkMatch) было в возрасте, поэтому я сопоставил свои новые .pdbs с исходным исполняемым файлом.

Однако, когда я загружаю его в WinDbg, он по-прежнему говорит, что это «несоответствующий pdb», так как я установил .symopts+0x40, он все равно пытается загрузить их. Затем я получаю предупреждение:

*** WARNING: Unable to verify checksum for myexe.exe

Я запустил !lmi myexe и увидел, что на самом деле контрольная сумма исполняемого файла фактически равна нулю. Немного покопавшись, я обнаружил, что исполняемый файл должен быть собран с флагом /release, чтобы иметь контрольную сумму. Это все хорошо, но я не могу точно вернуться во времени и перестроить (если бы я это сделал, я бы точно сохранил оригинал .pdbs :-P).

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

Ответы [ 2 ]

1 голос
/ 16 июля 2010

вам не нужна контрольная сумма для получения стека вызовов - это предупреждение можно смело игнорировать.

чтобы получить стек, вам нужно выполнить команду стека (любой вариант k).

Если мини-дампы хороши (то есть описывают фактическую ошибку), сначала вы должны попробовать автоматический анализ !analyze -v, который поможет вам начать.

возвращайся, когда ты исчерпал свой опыт: o)

0 голосов
/ 16 июля 2010

Если вы работаете с мини-дампами, вам нужно установить путь к изображению (Ctrl + I), чтобы указать местоположение с изображениями в дампе. Проблема с мини-дампами состоит в том, что они не содержат никакого кода или данных из исполняемых файлов на цели, поэтому вы должны предоставить их самостоятельно.

-Скотт

...