.PDB

Файл PDB

Program Database (Visual C++ Debug Symbols)
Задать вопрос
БЫСТРЫЙ ОТВЕТ

Файл PDB - это Program Database (база данных программы), файл символов отладки, который компилятор Visual Studio создает вместе со скомпилированным EXE или DLL. Вы не открываете его напрямую; Visual Studio или WinDbg загружают его автоматически во время отладки. Основная проблема - не вредоносное ПО, а конфиденциальность: PDB раскрывает внутренние имена функций и пути к исходному коду, поэтому не включайте его в публичные релизные пакеты.

Разработчик: Microsoft Категория: Файлы разработчика Открыть стандартное MIME: application/octet-stream
ОТКРЫВАЕТСЯ НА Windows Linux
Связанные: .DO · .MD · .HEX · .XSD

На этой странице

Проиндексировано расширений: 19k+
Последняя проверка: Aug 16, 2026

Не знаете, что это за файл?

Перетащите любой файл в наш идентификатор - мы прочитаем первые байты, чтобы определить формат.

Идентифицировать файл

Что такое формат файла PDB?

Файлы .pdb содержат базу данных для программы - в частности, структурированное хранилище символов отладки, сопоставлений исходных файлов и информации о типах, созданное инструментарием Microsoft Visual C++. Они используются вместе с соответствующими .exe или .dll, из которых они были скомпилированы; они не встраиваются внутрь этих бинарных файлов, а распространяются как отдельные файлы.

Отладочная информация

Символы отладки, хранящиеся в файлах .pdb, позволяют отладчикам передавать важную информацию об исключениях, сопоставлять адреса памяти с номерами строк исходного кода и раскрывать имена функций и переменных, которые удаляются из финального бинарного файла. Они полезны при поиске и устранении ошибок как в среде разработки, так и в рабочей среде.

Как создаются файлы .pdb

Файлы .pdb генерируются из исходных файлов в процессе компиляции компилятором MSVC (cl.exe) и компоновщиком (link.exe). Они *не являются* продуктом Just-In-Time (JIT) компиляции - это распространенное заблуждение. Современные файлы .pdb используют бинарный контейнер MSF 7.00 (Multi-Stream File), представленный в Visual Studio .NET. Каждый .pdb привязан к своему бинарному файлу через GUID и счетчик Age; .pdb от другой сборки не загрузится. Поскольку формат является проприетарным, только специализированные инструменты, такие как Visual Studio, WinDbg или llvm-pdbutil, могут читать их, хотя Microsoft опубликовала эталонную реализацию.

Безопасность и защита

РИСК: LOW

PDB - это пассивные данные, считываемые отладчиками; они не содержат исполняемого кода, поэтому открывать их безопасно. Реальная проблема заключается в конфиденциальности, а не во вредоносном ПО: PDB раскрывает внутренние имена функций, пути к исходным файлам и структуру кода, поэтому поставка или утечка такого файла раскрывает внутреннее устройство вашего ПО (что полезно для реверс-инжиниринга). Храните релизные PDB на частном сервере символов, а не поставляйте их вместе с продуктом.

Детали формата

в двух словах
ПОЛНОЕ НАЗВАНИЕProgram Database (Visual C++ Debug Symbols)также известен как PDB symbol file, Microsoft Program Database
РАЗРАБОТЧИКMicrosoftс 1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
MIME-ТИПapplication/octet-stream
ТИПБинарный контейнер символов отладки (Multi-Stream File / MSF), созданный инструментарием MSVC
СТАНДАРТОткрытый · без роялти
СВЯЗАННЫЕ.do.md.hex.xsd
Это расширение также используется в…
  • База данных Palm OS (книга PalmPilot / eReader) - База данных Palm PRC/PDB - электронные книги и данные приложений КПК (заголовок «...» по смещению 0x3C); открывается инструментами Palm/eReader, а не Visual Studio.
  • Молекулярная структура Protein Data Bank - Текстовый файл PDB, описывающий трехмерные атомные координаты молекулы; открывается PyMOL/Chimera/Jmol.
  • Данные о ценах/портфеле Quicken (.pdb) - Intuit Quicken записывал файл данных .pdb - значение, к которому база данных ошибочно привязала программу открытия «Quicken».
MAGIC BYTES · СИГНАТУРА ФАЙЛА
СМЕЩЕНИЕ
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c
HEX
4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453
ASCII
Microsoft C/C++ MSF 7.00···DS
Современные PDB от MSVC начинаются с 0x20-байтового магического числа MSF 7.00 SuperBlock «Microsoft C/C++ MSF 7.00\r\n\x1aDS\0\0\0». Старые файлы PDB 2.0 начинаются с «Microsoft C/C++ program database 2.00\r\n\x1aJG». (Не связано: Palm PDB и PDB Protein Data Bank - это разные файлы с тем же расширением - см. also_used_by).

Программы, открывающие файлы PDB

Windows4 apps
Visual Studio Freemium PDB загружаются автоматически при отладке соответствующей сборки; для дампа используйте «Файл» > «Открыть» > «Дамп аварийного завершения» и укажите папку с PDB в «Средства» > «Параметры» > «Отладка» > «Символы». Community-издание бесплатно.
WinDbg (Debugging Tools for Windows) Бесплатно Установите путь к символам (.sympath) к папке PDB или серверу символов, затем загрузите дамп или живую цель - WinDbg разрешит символы из PDB.
llvm-pdbutil Открытый код Командная строка: «llvm-pdbutil dump» проверяет потоки, типы и символы внутри PDB - полезно для проверки или изучения файла без отладчика.
dumpbin / DIA SDK tools Встроенная Поставляется с Visual Studio; проверяет каталог отладки бинарного файла и (через DIA) программно считывает содержимое PDB.
Linux1 app
llvm-pdbutil Открытый код Командная строка: «llvm-pdbutil dump» проверяет потоки, типы и символы внутри PDB - полезно для проверки или изучения файла без отладчика.

Технические подробности

глубокая спецификация
Формат контейнераMSF (Multi-Stream File) - страничный внутренний контейнер потоков, который содержит несколько именованных потоков данных в одном файле
Сигнатура файла (magic bytes)Начинается со строки ASCII `Microsoft C/C++ MSF 7.00`, за которой следуют CR LF и специфические управляющие байты по смещению 0; устаревшие файлы PDB 2.0 начинаются с `Microsoft C/C++ program database 2.00`
КодировкаБинарная, порядок байтов little-endian (от младшего к старшему)
Внутренние потокиDBI (отладочная информация), TPI/IPI (записи типов и ID), потоки публичных и глобальных символов, потоки символов для каждого модуля и таблицы сопоставления исходных кодов/номеров строк
Ключ связи с бинарным файломGUID + счетчик Age, записанные как в `.pdb`, так и в каталог отладки связанного с ним `.exe` или `.dll`; несоответствие заставляет отладчик отклонить файл символов
Типичный размер файлаОт 100 КБ до 500 МБ; крупные нативные проекты на C++ регулярно создают файлы `.pdb` размером в сотни мегабайт
СжатиеОтсутствует - данные имеют страничную структуру, но не сжаты
Размер страницыСтраницы по 4 КБ в MSF 7.00 (BigMsf); старый контейнер MSF 2.0 использовал меньшие размеры страниц
Варианты форматаPDB 2.00 (устаревший магический номер JG, MSVC 6.0 и ранее); MSF 7.00 / BigMsf (Visual Studio .NET и выше, текущий для C/C++); Portable PDB (отдельный кроссплатформенный формат, используемый .NET/Roslyn)
Инструментарий созданияКомпилятор MSVC (`cl.exe`) и компоновщик (`link.exe`); также создается Clang/LLVM при таргетинге на Windows с флагами компилятора `/Z7` или `/Zi`
Инструменты-потребителиVisual Studio Debugger, WinDbg, DIA SDK, `llvm-pdbutil`, `dumpbin`; инструменты анализа дампов, такие как конвертеры символов CrashPad и Breakpad
Поддержка серверов символовФайлы `.pdb` индексируются по GUID + Age на сервере символов (через `symstore.exe` или совместимые серверы); отладчики загружают нужную копию по запросу, используя ключ из каталога отладки бинарного файла
Поддержка платформНативная для Windows; кроссплатформенное чтение через инструменты LLVM (`llvm-pdbutil`, LLDB) на Linux и macOS
MIME-типapplication/octet-stream (нет выделенного зарегистрированного подтипа MIME)
Шаблон развертыванияОдин `.pdb` на каждую цель сборки (`.exe` или `.dll`); распространяется как отдельный файл рядом с бинарным файлом или хранится на частном/публичном сервере символов - не встраивается в сам бинарный файл
Выпущен1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
Последняя версияMSF 7.00 ('BigMsf'); portable PDB used by .NET/Roslyn alongside it
Открыть стандартноеДа · без роялти
Спецификацияgithub.com

Конвертации PDB

Вопросы и ответы сообщества

спрошено пользователями
Задать быстрый вопрос
Получите помощь от людей, работающих с файлами PDB. Будьте конкретны - укажите вашу систему и версию ПО.
Аккаунт не нужен · ответы обычно в течение дня

Вопросов пока нет - станьте первым, кто спросит о файлах PDB.

Часто задаваемые вопросы

Что такое файл PDB в Visual Studio?
Это Program Database - файл символов отладки, который компилятор создает рядом с вашим EXE/DLL. Он сопоставляет машинный код с исходными файлами, номерами строк и именами, чтобы отладчик мог показывать читаемые трассировки стека и позволять вам выполнять код по шагам.
Как открыть файл .pdb?
Обычно вы не открываете его напрямую - Visual Studio или WinDbg загружают его автоматически, если он соответствует отлаживаемому бинарному файлу. Чтобы изучить содержимое, используйте llvm-pdbutil или инструменты на базе DIA для вывода символов в виде текста.
Почему мой отладчик говорит, что PDB не соответствует бинарному файлу?
Каждый PDB несет метку GUID+Age, привязанную к одной конкретной сборке. Если EXE/DLL был перекомпилирован, старый PDB больше не подходит, и отладчик его отклоняет. Пересоберите проект, чтобы получить подходящий PDB, или найдите точный PDB для этой сборки.
Можно ли конвертировать .pdb в PDF?
Только не для PDB от Visual C++ - это бинарные данные отладки, а не документ. (Если ваш .pdb на самом деле является электронной книгой Palm/eReader, которая имеет такое же расширение, Calibre может конвертировать ее в PDF - но это другой тип файла.)
Нужно ли поставлять файлы PDB вместе с программой?
Нет - ваше приложение работает без них. PDB нужны только для отладки. Многие команды хранят их на частном сервере символов, чтобы иметь возможность анализировать дампы аварийного завершения позже, не раскрывая структуру исходного кода пользователям.
Может ли PDB восстановить мой исходный код?
Нет. Он ссылается на исходные файлы и номера строк, хранит имена и типы, но не содержит сам исходный код. Он делает отладку читаемой, но не реконструирует ваш код.

Ссылки

1Microsoft Learn - Symbol (.pdb) files in the debuggerlearn.microsoft.com
2microsoft/microsoft-pdb - PDB format informationgithub.com

Узнать больше

по всей базе данных

Популярные расширения на этой неделе

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

Похожие расширения

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Бесплатные инструменты для файлов

Идентификатор файлов и конвертер изображений в браузере - все работает на вашем устройстве.

Открыть инструменты

Обзор расширений файлов A-Z