Файлы PDB (C++)
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro и Team |
Обозначения:
Применяется |
|
Не применяется |
|
Команда или команды по умолчанию скрыты. |
Файл базы данных программы (PDB) содержит отладочные данные и сведения о состоянии проекта, позволяющие выполнять последовательную компоновку отладочной конфигурации программы. PDB-файл создается при построении с параметрами /ZI или /Zi (для С/С++).
В Visual C++ параметр /Fd определяет имя PDB-файла, созданного компилятором. При создании проекта в Visual Studio с использованием мастеров параметр /Fd устанавливается, чтобы создать PDB-файл с именем <проект>.PDB.
При построении приложения на C/C++ с использованием файла makefile и заданием /ZI или /Zi без /Fd получаются два PDB-файла:
VC70.PDB (В более общем случае — VCx0.PDB, где x означает версию Visual C++.) Этот файл хранит все отладочные данные для отдельных OBJ-файлов и располагается в том же каталоге, что и файл makefile.
project.PDB Этот файл хранит все отладочные данные для исполняемого файла. Для С/С++ он располагается в подкаталоге \debug.
При каждом создании OBJ-файла компилятор C/C++ объединяет отладочные данные в VCx0.PBD. Вставляемые в него данные включают сведения о типах, но не включают символьные данные, такие как определения функций. Таким образом, даже если файл источника включает общие файлы заголовков, такие как <windows.h>, определения типов из этих заголовков сохраняются только один раз, а не для каждого OBJ-файла.
Компоновщик создает файл project.PDB, который содержит отладочные данные для исполняемых файлов проекта. Файл проект.PDB содержит полные отладочные данные, включая прототипы функций, а не только сведения о типе, содержащиеся в VCx0.PDB. Оба PDB-файла позволяют последовательные изменения. Компоновщик также включает путь к PDB-файлу в EXE-файл или DLL, который создает.
Отладчик Visual Studio использует путь к PDB в EXE-файле или DLL, чтобы найти PDB-файл проекта. Если отладчик не может найти PDB-файл по этому пути или если путь является недопустимым (например, если проект был перемещен на другой компьютер), отладчик ищет путь, содержащий исполняемый EXE-файл, за которым следует путь к символам, указанный в диалоговом окне Параметры (папка Отладка, узел Символы). Отладчик не будет загружать PDB, не согласующийся с отлаживаемым двоичным файлом.