Program database (PDB) — це формат файлу (розроблений Microsoft) для зберігання інформації для налагодження програм (або, як правило, програмних модулів, таких як .DLL або .EXE). Файли PDB зазвичай мають розширення.pdb. Файл PDB зазвичай створюється з файлів початкового коду під час компіляції. Він зберігає список усіх символів у модулі разом із їхніми адресами та, можливо, назвою файлу й рядком, у якому було оголошено символ. Ця інформація про символи не зберігається безпосередньо в модулі, оскільки займає багато місця.
Застосування
Коли програма налагоджується, налагоджувач завантажує інформацію для налагодження з файлу PDB і використовує її для пошуку символів або зіставлення поточного стану виконання програми з її початковим кодом. Microsoft Visual Studio використовує файли PDB як основний формат файлів для інформації налагодження.
Іншим застосуванням файлів PDB є служби, які збирають дані про аварійні завершення роботи від користувачів і зіставляють їх із конкретними частинами початкового коду, які спричинили аварійне завершення роботи (або пов'язані з ним).
Компілятори Microsoft за відповідних параметрів зберігають в одному PDB інформацію про типи, знайдені у скомпільованих початкових файлах. Інформація налагодження, специфічна для кожного початкового файлу, зберігається у скомпільованому об'єктному файлі та містить посилання на типи в PDB. Кожна компіляція додає до PDB усі типи, яких там ще немає, тому посилання у вже скомпільованих об'єктних файлах залишаються дійсними.
Компонувальник Microsoft за відповідних параметрів створює повністю новий PDB, який об'єднує інформацію налагодження, знайдену у його початкових модулях, типи, на які посилаються ці модулі, та іншу інформацію, створену компонувальником. Якщо компонування виконується поступово, наявний PDB змінюється шляхом додавання або заміни лише інформації, що стосується доданих або замінених модулів, а також додаванням нових типів, яких ще немає в PDB.
Файли PDB зазвичай вилучаються з пакета поширення програм. Вони використовуються розробниками під час налагодження, щоб заощадити час і отримати уявлення про роботу програми.
Видобування інформації
Microsoft опублікувала свій код для читання та запису PDB-файлів (із кількома потоками) у в репозиторії "microsoft-pdb" у 2015 році за ліцензією MIT. У такому вигляді код не компілюється, але все ще є хорошим довідковим матеріалом. Інформацію можна видобути з PDB-файлу за допомогою інтерфейсів DIA (Debug Interface Access), доступних у Microsoft Windows. Існують також сторонні інструменти, які можуть видобувати інформацію з PDB, такі як radare2 та pdbparse.
Переносний PDB
.NET має окремий формат «Portable PDB», спеціально розроблений для потреб керованого коду. Він є простішим і компактнішим та замінив структуру з кількома потоками стандартною системою метаданих Common Language Infrastructure, ECMA-335, частина II.