Для чего нужен PDB-файл?
PDB-файлы: то, что должен знать каждый разработчик
Пример сценария PDB:
Что такое PDB-файл?
Большинство разработчиков должны знать, что PDB-файлы используются для помощи в программной отладке. Но как именно он работает, нам может быть незнакомо. В этой статье описывается хранение и содержимое файлов PDB. Также описывается, как отладчик находит PDB-файл, соответствующий binay, и как отладчик находит исходный код, соответствующий binay. Эта статья предназначена для всех нативных и управляемых разработчиков.
Прежде чем начать, давайте определим два термина: приватная сборка, которая используется для обозначения сборки, сгенерированной на собственном компьютере разработчика; Публичная сборка, то есть сборка, сгенерированная на машине публичных сборок. частное строительство относительно простое, потому что PDB и Binay находятся в одном месте, и обычно проблемы связаны с общественной застройкой.
Самое важное, что должны знать все разработчики — «PDB-файлы так же важны, как и исходный код», без которого невозможно даже отладить. Для публичной сборки сервер символов должен хранить все PDB, а когда пользователь сообщает об ошибке, отладчик автоматически может найти соответствующий PDB-файл в binay, и Visual Studio и Windbg знают, как получить доступ к серверу символов. Перед хранением PDB и binay на сервере символов нужно также индексировать исходный код PDB run, то есть связать PDB и исходный код.
Следующая часть предполагает, что сервер символов и индексация сервера источника уже настроены. TFS2010 можно выполнить так же просто, как индексирование исходного кода и копирование сервера символов для новой сборки.
2. Содержимое файла PDB
Официально начиная содержимое PDB, PDB не является общедоступным файловым форматом, но Microsoft предоставляет API для получения данных из PDB.
Родной PDB C++ содержит следующую информацию: * публичные, частные и статические адреса функций; * Имя и адрес глобальной переменной; * Имена параметров и локальных переменных и смещений в стеке; * определения типов класса, структуры и данных; * Данные о пропуске указателя кадров для прохождения нативного стека на x86; * Название и количество строк в файле исходного кода;
.NET PDB содержит только 2 части информации: * Имя исходного кода и количество строк; * и название локальной переменной; * Все остальные данные уже включены в . Метаданные NET;
|