PDA

Показать полную графическую версию : WinDbg и Process Explorer и подключение символов


evgen84
23-06-2009, 10:49
Здравствуйте.
Вопрос по WinDbg и Process Explorer и подключение символов.

Если комп смотрит в инет и настройках в ‘Options->Configure Symbols…’ поле Symbols Path написать:

srv*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols, то все гуд, все отображается как в WinDbg так и в Process Explorer-е.
Но если сервер не смотрит в инет, то качаем от сюда вручную. Затем этот архив необходимо разпаковать, установить (например по умолчанию в %systemdir%\symbols). Затем запустить windbg, выбрать локальную отладку (File\Kernel Debug\Local). Затем указать путь к символам (File\Symbol File path\brouse), выбрать путь, куда они были установлены, т.е. %systemdir%\symbols. И в отладчике наблюдаю:

Loading unloaded module list
...................*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\ntdll.dll -

lkd> .reload
Connected to Windows XP 2600 x86 compatible target at (Thu Jun 4 13:32:18.468 2009 (GMT+3)), ptr64 FALSE
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntkrpamp.exe -
Loading Kernel Symbols

Ну и соответственно при выполнении команды ! vm

lkd> ! vm

*** Virtual Memory Usage ***
Physical Memory: 259883 ( 1039532 Kb)
00000000: Unable to get page file
************************************************** ***********************
*** ***
*** ***
*** Your debugger is not using the correct symbols ***
*** ***
*** In order for this command to work properly, your symbol path ***
*** must point to .pdb files that have full type information. ***
*** ***
*** Certain .pdb files (such as the public OS symbols) do not ***
*** contain the required information. Contact the group that ***
*** provided you with these symbols if you need this command to ***
*** work. ***
*** ***
*** Type referenced: nt!_MM_PAGED_POOL_INFO ***
*** ***
************************************************** ***********************
00000000: Unable to get paged pool info
unable to get nt!MmTotalFreeSystemPtes
************************************************** ***********************
Подскажите, если кто это реально делал, как корректно их подключить без инета?http://www.microsoft.com/whdc/devtools/debugging/default.mspx

Nixel
09-07-2010, 14:40
Сообщение не претендует на скоростной ответ ))) ну что поделать ))

Чтобы подключить локальные файлы символов в отладчику KD необходимо сделать следующее.

1) Скачать файлы символов, ссылка на скачку (http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#f)
2) Установить то что скачали, например в c:\Windows\Symbols
3) Настроить переменную среды _NT_SYMBOL_PATH. Свойство системы -> Дополнительно -> Переменные среды. Кликнуть создать
Имя переменной = _NT_SYMBOL_PATH
Занчение переменной = c:\Windows\Symbols (или куда вы установили файлы символов)
4) Сделать образ диска с Windows той версии которую вы используете(например ХР) или каждый раз при отладке вставлять диск с сидюк или скачать с диска папку i386 на винт. 3-ий вариант возможно работать не будет (Хотя я не пробовал).
5) Вставляем образ в Daemon Tools или подобную утилиту, в остальных случаях (см. пункт 4) ничего не делать.
6) Запускаем windbg с параметрами -i <путь к папке i386> -z <путь к образу минидампа>

У меня ярлык для запуска KD с параметром отладки файла минидампа получился вот такой "C:\Program Files\Debugging Tools for Windows (x86)\i386kd.exe" -i e:\i386 -z c:\WINDOWS\MEMORY.DMP

Всего хорошего ))


Если не заработало, то установить переменную среды в SRV*C:\WINDOWS\symbols*http://msdl.microsoft.com/download/symbols
Тогда будет происходить автоматическая подкачка символов с сервера microsoft по мере надобности




© OSzone.net 2001-2012