"Не загружаются символы" при попытке прочитать дамп

У меня есть приложение, которое иногда вызывает BSOD на машине Win XP. Пытаясь узнать больше, я загрузил получившийся файл * .dmp (из C: \ Windows \ Minidump), но при этом получаю это сообщение, когда он занимает большую часть считывания:

*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
*                                                                   *
* The Symbol Path can be set by:                                    *
*   using the _NT_SYMBOL_PATH environment variable.                 *
*   using the -y <symbol_path> argument when starting the debugger. *
*   using .sympath and .sympath+                                    *
*********************************************************************

Что это значит и как это «исправить»?

Ответов (5)

Быстрый ответ -

c: \> установить _NT_SYMBOL_PATH = SRV * C: \ WINDOWS \ Symbols * http: //msdl.microsoft.com/download/symbols

перед запуском windbg.

Как заметил @Vaibhav, вам действительно нужно загрузить символы и настроить windbg для их использования.

Также обратите внимание на следующее:! Sym noisy - Активирует загрузку зашумленных символов lm v - Используйте с параметром «m» для просмотра информации о загруженном модуле. lme D sm - Список всех модулей без символов.

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

Вот ссылка, которая подробно рассказывает об этом: http://www.microsoft.com/whdc/DevTools/Debugging/debugstart.mspx

Обычно я перехожу на панель управления системой, затем на вкладку «Дополнительно», затем «Среда». Затем вы можете добавить необходимую _NT_SYMBOL_PATH переменную. Тогда вам не нужно ничего делать в командной строке перед запуском WinDbg.

Настройка srv*C:\Windows\Symbols*http : //msdl.microsoft.com/download/symbols как предлагает Staffan - это нормально. Я обычно предпочитаю использовать свой собственный профиль для хранения символов (так что мне не нужно редактировать разрешения для C:\Windows\Symbols, поскольку я намеренно запускаю как ограниченный пользователь, для хорошей гигиены безопасности). Таким образом , (в моем случае) мой _NT_SYMBOL_PATH есть srv*C:\Documents and Settings\cky\symbols*http : //msdl.microsoft.com/download/symbols .

Надеюсь это поможет. :-)

Более быстрый ответ:

!symfix

Но влияет только на текущий windbg / ntsd / cdb / kd.