2012-06-26 4 views
9

Что такое файлы PDB внутри файлов DLL .NET и что он делает? Обычно люди удаляют этот файл при развертывании и сохраняют только файл dll в папках lib, но, похоже, ничего не произошло, и все работает хорошо ...Что такое файл PDB?

Итак, что делают файлы PDB?

+1

См. [Управление символами и исходным кодом] (http://msdn.microsoft.com/en-us/library/ms241613) для обсуждения файлов базы данных программы , –

ответ

12

Файл базы данных программ не имеет ничего общего с инкрементным связыванием и состоянием проекта! Файлы PDB используются для сопоставления EXE с SOURCES. Они используются для двоичных файлов Debug и Release. Here an article, который объясняет эту связующую ссылку между исполняемым изображением и его файлом PDB

+0

Эта статья (http://www.codeproject.com/Articles/37883/ Symbols-File-Locator) также обращаются к этой проблеме – mox

+0

Итак, если у меня есть файл конфигурации на моем среднем уровне со связями, конечными точками, безопасностью и т. Д. ... тогда он ссылается на pdb? –

0

В .NET он в основном просто хранит информацию о символах для локальных переменных (а также информацию о области тоже IIRC).

+0

Можете ли вы подробно остановиться на символах? –

7

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

Причина, по которой файлы обычно не разворачиваются, заключается в том, что их обычно не нужно отправлять. Если вы хотите отладить приложение, вы всегда можете загрузить их из каталога, сетевого ресурса или сервера символов.

+0

+1 голос. Спасибо за ваш ответ, но я не могу отметить все ответы как правильные. –

1

База данных файл программы (PDB) проводит отладку и информацию о состоянии проекта, что позволяет инкрементный связывание конфигурации отладки вашей программы. Файл PDB создается при компиляции программы C/C++ с/ZI или/Zi или программой Visual Basic/C#/JScript .NET с/debug. Каждый раз, когда он создает OBJ-файл, компилятор C/C++ объединяет информацию об отладке в VCx0.PBD. Вставленная информация включает в себя информацию о типе, но не включает в себя информацию о символах, такую ​​как определения функций. Таким образом, даже если каждый исходный файл содержит общие файлы заголовков, такие как, typedefs из этих заголовков хранятся только один раз, а не в каждом OBJ-файле.

+2

Неверно! PDB не имеет ничего общего с информацией о состоянии проекта и инкрементной связью. PDB содержат символы, такие как определения. Подробнее см. Ниже. – mox

+1

Выглядит как копия + вставка https://msdn.microsoft.com/en-us/library/yd4f8bd1(vs.71).aspx – michaelmsm89