aspose.info
RU

Формат файла PDB — файл базы данных программы

Обновлено

.PDB вариант №

Файл с расширением .pdb представляет собой файл базы данных программы, содержащий отладочную информацию для скомпилированного исполняемого файла (EXE/DLL). Файлы PDB генерируются компиляторами Microsoft, когда прикладная программа компилируется в режиме отладки. Наличие файла PDB может помочь в обратном проектировании исполняемого файла, поскольку он содержит важную информацию обо всех символах модулей. Именно по этой причине эти файлы хранятся отдельно от окончательного исполняемого файла. Microsoft DgbHelp API может открыть файл PDB для получения такой информации, как общедоступные и экспортированные, глобальные символы, локальные символы, тип данных, исходные файлы и номера строк.

Формат PDB-файла

PDB — это собственный файловый формат Microsoft, который еще нигде официально не документирован. Однако начальная документация доступна здесь, и на нее можно ссылаться.

Потоки PDB

Файлы PDB состоят из нескольких потоков, где каждый поток действует как отдельный виртуальный файл и содержит информацию. Авторы файлов PDB могут записывать в эти файлы, и файл завершается только после того, как будет выдана явная фиксация. Компилятор может продолжать запись в файл PDB, но фиксировать только в том случае, если весь пользовательский код компилируется успешно. Файл PDB состоит из следующих потоков:

Номер потокаСодержаниеКраткое описание
1Pdb (заголовок)Информация о версии и информация для подключения этой PDB к EXE
2Tpi (менеджер типов)Все типы, используемые в исполняемом файле.
3Dbi (информация об отладке)Содержит материалы раздела и список «Модов»
4ИмяКартаСодержит таблицу хешированных строк
4-(n+4)n Mod’s (информация о модуле)Каждый поток Mod содержит символы и номера строк для одной компиляции
n+4Хэш глобального символаИндекс, позволяющий искать в глобальных символах по имени
n+5Хэш публичного символаИндекс, позволяющий искать в публичных символах по адресам
n+6Записи символовАктуальные записи глобальных и общедоступных символов
n+7Введите хэшХэш, используемый потоком TPI.

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

Заголовок PDB

Файл PDB имеет заголовок, состоящий из подписи для идентификации и проверки конкретного формата. Длина подписи зависит от формата PDB. Заголовок может быть длиннее одной страницы.

Метаданные PDB

Метаданные PDB отвечают за распознавание всех потоков компонентов, задавая длину и последовательность страниц для каждого потока. Заказы отдаются потокам последовательно; начиная с 0. Существует также неупорядоченный корневой поток, который содержит некоторые метаданные.

использованная литература

См. также