Неверный стек вызовов в аварийном дампе из-за несоответствующего / отсутствующего * системного * двоичного файла? - PullRequest
0 голосов
/ 19 апреля 2011

Получил этот стек вызовов при открытии аварийного дампа Windows в Visual Studio 2005:

>   myprog.exe!app_crash::CommonUnhandledExceptionFilter(_EXCEPTION_POINTERS * pExceptionInfo=0x0ef4f318)  Line 41  C++
    pdm.dll!513fb8e2()  
    [Frames below may be incorrect and/or missing, no symbols loaded for pdm.dll]   
    kernel32.dll!_UnhandledExceptionFilter@4()  + 0x1c7 bytes   
    ...

Просмотр информации о загрузке модуля:

...
'DumpFM-V235_76_1_0-20110412-153403-3612-484.dmp': Loaded '*C:\Program Files\Common Files\Microsoft Shared\VS7Debug\pdm.dll', No matching binary found.
...

Мы видим, что этот двоичный файл не былдаже загруженный, потому что машина, используемая для анализа дампа, отличается от машины, которая создала дамп.

У меня нет доступа к этой другой машине в данный момент - могу ли я как-нибудь получить этот стекисправлено, или мне всегда будет нужен точный двоичный файл в этом точном месте пути?

Ответы [ 2 ]

1 голос
/ 22 мая 2015

Другой вариант - использовать инструмент ModuleRescue от людей с DebugInfo.com.Это отсканирует файл дампа, позволит вам выбрать модуль, который не загружает символы, а затем сгенерирует поддельный модуль, в котором будет достаточно информации, чтобы отладчик мог загрузить символы с сервера символов.

Когда Visual Studio не может загрузить символы для этого модуля и открывает диалоговое окно с просьбой найти символы, просто наведите ваш отладчик на этот поддельный модуль, и он загрузится правильно.

ЭтоИнструмент в основном делает то же самое, что и WinDbg, хотя и с другим рабочим процессом.

1 голос
/ 30 мая 2011

Если вы абсолютно хотите отладить этот дамп в Visual Studio, то вы можете избежать копирования системных DLL-файлов с компьютера, создавшего дамп , в ту же папку, где находится файл .dmp .Таким образом, он будет загружать эти двоичные файлы вместо того, чтобы пытаться найти их в том же пути в системе отладки, что и в исходной системе (которая, вероятно, будет содержать разные версии одних и тех же модулей).Однако, указывайте, у вас не возникнет этой проблемы при загрузке дампа в WinDBG (по причинам, которые я до сих пор не понимаю).Вот почему, когда я получаю дамп от клиентов, я всегда анализирую их в WinDBG.

Если вам нужна помощь по использованию WinDBG для анализа аварийного дампа, следующий веб-сайт полон информации по теме: http://www.dumpanalysis.org/.

...