В этой части я попытаюсь объяснить файлы символов (symbol files). Обычно их называют файлами PDB потому что их имена файлов имеют расширение .PDB. Старые файлы символов также могут иметь расширение .DBG. Файлы PDB необходимы для правильного чтения дампов памяти. Без файлов PDB, дамп памяти представляет собой простой набор чисел, содержимое памяти без какой либо интерпретации. Файлы PDB помогают инструментам и отладчикам типа WinDbg правильно интерпретировать данные и преобразовать их в читабельный формат. Грубо говоря, файлы PDB содержат соответствия между числами и их интерпретацией, выраженной в коротких строках текста:
Поскольку эти соответствия изменяются когда мы устанавливаем патч или исправленную версию программы на компьютер и у нас появился новый файл дампа памяти, нам необходимы новые файлы PDB которые соответствуют измененным компонентам DLL или драйверам.
Некоторое время назад файлы символов необходимо было загружать с сайта компании Microsoft или копировать их с дисков CD. Сейчас компания Microsoft предоставляет выделенный интернет-сервер символьных файлов и отладчик WinDbg может загружать файлы PDB автоматически. Нам только нужно ввести адрес этого сервера в диалоге File \ Symbol File Path… и выделить Reload. Адрес сервера:
SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
Если мы не помним этот адрес и мы первый раз запускаем WinDbg на новом компьютере, мы можем выполнить следующую команду .symfix для автоматической установки пути к серверу и задать место на диске для сохранения загруженных файлов. Мы также можем проверить текущие пути поиска и загрузки символьных файлов путём выполнения команды .sympath. После изменения пути поиска или адреса загрузки необходимо явно перезагрузить файлы символов путем выполнения команды .reload:
0:000> .symfix
No downstream store given, using C:\Program Files\Debugging Tools for Windows\sym
0:000> .sympath
Symbol search path is: SRV**http://msdl.microsoft.com/download/symbols
0:000> .symfix c:\websymbols
0:000> .sympath
Symbol search path is: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
0:000> .reload
На заметку: Используйте эту ссылку для быстрой установки отладчика WinDbg и напоминания о путях и командах загрузки символов:
http://windbg.org
- Дмитрий Востоков @ DumpAnalysis.org -
Оригинальная статья: Crash Dumps for Dummies (Part 5)