.PDB

Plik PDB

Program Database (Visual C++ Debug Symbols)
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik PDB to Program Database - plik symboli debugowania tworzony przez kompilator Visual Studio obok skompilowanego pliku EXE lub DLL. Nie otwiera się go bezpośrednio; Visual Studio lub WinDbg ładują go automatycznie podczas debugowania. Głównym problemem nie jest złośliwe oprogramowanie, lecz poufność: PDB ujawnia wewnętrzne nazwy funkcji i ścieżki źródłowe, więc należy go trzymać poza publicznymi pakietami instalacyjnymi.

Deweloper: Microsoft Kategoria: Pliki developerskie Otwarty standard MIME: application/octet-stream
OTWIERA SIĘ NA Windows Linux
Powiązane: .DO · .MD · .HEX · .XSD

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Aug 16, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku PDB?

Pliki .pdb zawierają bazę danych programu - konkretnie ustrukturyzowany magazyn symboli debugowania, mapowań plików źródłowych i informacji o typach wygenerowanych przez zestaw narzędzi Microsoft Visual C++. Są one używane razem z pasującymi plikami .exe lub .dll, z których zostały skompilowane; nie są osadzone wewnątrz tych plików binarnych, lecz dystrybuowane jako oddzielne pliki.

Informacje o debugowaniu

Symbole debugowania przechowywane w plikach .pdb pozwalają debuggerom przekazywać ważne informacje o wyjątkach, mapować adresy pamięci z powrotem na numery linii plików źródłowych oraz ujawniać nazwy funkcji i zmiennych, które są usuwane z końcowego pliku binarnego. Są one pomocne podczas rozwiązywania problemów z programem i adresowania błędów zarówno w środowisku programistycznym, jak i produkcyjnym.

Jak powstają pliki .pdb

Pliki .pdb są generowane z plików źródłowych podczas procesu kompilacji przez kompilator MSVC (cl.exe) i linker (link.exe). *Nie* są one produktem kompilacji Just-In-Time (JIT) - jest to powszechne błędne przekonanie. Nowoczesne pliki .pdb używają kontenera binarnego MSF 7.00 (Multi-Stream File) wprowadzonego wraz z Visual Studio .NET. Każdy .pdb jest powiązany ze swoim plikiem binarnym za pomocą identyfikatora GUID i licznika Age; plik .pdb z innej kompilacji nie zostanie załadowany. Ponieważ format jest własnościowy, tylko dedykowane narzędzia, takie jak Visual Studio, WinDbg lub llvm-pdbutil, mogą je odczytać, choć Microsoft opublikował implementację referencyjną.

Bezpieczeństwo

RYZYKO: LOW

PDB to pasywne dane odczytywane przez debuggery - nie zawiera kodu wykonywalnego, więc otwarcie go jest bezpieczne. Prawdziwym problemem jest poufność, a nie złośliwe oprogramowanie: PDB ujawnia wewnętrzne nazwy funkcji, ścieżki plików źródłowych i strukturę kodu, więc udostępnienie lub wyciek pliku ujawnia informacje o wnętrzu oprogramowania (przydatne dla inżynierii wstecznej). Przechowuj pliki PDB wersji produkcyjnych na prywatnym serwerze symboli, zamiast dołączać je do produktu.

Szczegóły formatu

w pigułce
PEŁNA NAZWAProgram Database (Visual C++ Debug Symbols)znany również jako PDB symbol file, Microsoft Program Database
DEWELOPERMicrosoftod 1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
TYP MIMEapplication/octet-stream
TYPBinarny kontener symboli debugowania (Multi-Stream File / MSF) produkowany przez zestaw narzędzi MSVC
STANDARDOtwarty · bezpłatny
POWIĄZANE.do.md.hex.xsd
To rozszerzenie jest również używane przez…
  • Baza danych Palm OS (książka PalmPilot / eReader) - Baza danych PRC/PDB Palm - e-booki i dane aplikacji PDA (nagłówek '...' pod offsetem 0x3C); otwierane przez narzędzia Palm/eReader, nie przez Visual Studio.
  • Struktura molekularna Protein Data Bank - Plik tekstowy PDB opisujący trójwymiarowe współrzędne atomowe cząsteczki; otwierany przez PyMOL/Chimera/Jmol.
  • Dane cen/portfela Quicken (.pdb) - Intuit Quicken zapisywał plik danych .pdb - znaczenie, do którego baza danych błędnie przypisała program otwierający 'Quicken'.
MAGICZNE BAJTY · SYGNATURA PLIKU
OFFSET
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c
HEX
4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453
ASCII
Microsoft C/C++ MSF 7.00···DS
Nowoczesne pliki PDB MSVC zaczynają się od 0x20-bajtowej sygnatury MSF 7.00 SuperBlock „Microsoft C/C++ MSF 7.00\r\n\x1aDS\0\0\0”. Starsze pliki PDB 2.0 zaczynają się od „Microsoft C/C++ program database 2.00\r\n\x1aJG”. (Niezwiązane: Palm PDB i Protein Data Bank PDB to inne pliki współdzielące to rozszerzenie - zobacz also_used_by).

Programy otwierające pliki PDB

Windows4 apps
Visual Studio Freemium Pliki PDB ładują się automatycznie podczas debugowania pasującej kompilacji; w przypadku zrzutu: File > Open > Crash Dump i wskaż folder z PDB w Tools > Options > Debugging > Symbols. Wersja Community jest bezpłatna.
WinDbg (Debugging Tools for Windows) Darmowy Ustaw ścieżkę symboli (.sympath) na folder PDB/serwer symboli, a następnie załaduj zrzut lub cel na żywo - WinDbg rozwiąże symbole z PDB.
llvm-pdbutil Open-source Linia poleceń: „llvm-pdbutil dump” sprawdza strumienie, typy i symbole wewnątrz PDB - przydatne do weryfikacji lub eksploracji bez debuggera.
dumpbin / DIA SDK tools Wbudowany Dostarczane z Visual Studio; sprawdza katalog debugowania pliku binarnego i (poprzez DIA) odczytuje zawartość PDB programowo.
Linux1 app
llvm-pdbutil Open-source Linia poleceń: „llvm-pdbutil dump” sprawdza strumienie, typy i symbole wewnątrz PDB - przydatne do weryfikacji lub eksploracji bez debuggera.

Szczegóły techniczne

specyfikacja
Format konteneraMSF (Multi-Stream File) - wewnętrzny kontener strumieni oparty na stronach, który przechowuje wiele nazwanych strumieni danych w jednym pliku
Sygnatura pliku (magic bytes)Zaczyna się od ciągu ASCII `Microsoft C/C++ MSF 7.00`, po którym następuje CR LF i określone bajty kontrolne pod offsetem 0; starsze pliki PDB 2.0 zaczynają się od `Microsoft C/C++ program database 2.00`
KodowanieBinarne, porządek bajtów little-endian w całym pliku
Strumienie wewnętrzneDBI (Debug Information), TPI/IPI (rekordy typów i ID), strumienie symboli publicznych i globalnych, strumienie symboli dla poszczególnych modułów oraz tabele mapowania źródeł/numerów linii
Klucz powiązania binarnegoGUID + licznik Age zapisany zarówno w `.pdb`, jak i w katalogu debugowania sparowanego pliku `.exe` lub `.dll`; niezgodność powoduje odrzucenie pliku symboli przez debugger
Typowy rozmiar plikuOd 100 KB do 500 MB; duże natywne projekty C++ rutynowo generują pliki `.pdb` o rozmiarze setek megabajtów
KompresjaBrak - dane mają strukturę stronicową, ale nie są skompresowane
Rozmiar stronyStrony 4 KB w MSF 7.00 (BigMsf); starszy kontener MSF 2.0 używał mniejszych rozmiarów stron
Warianty formatuPDB 2.00 (starsza sygnatura JG, MSVC 6.0 i wcześniejsze); MSF 7.00 / BigMsf (Visual Studio .NET i nowsze, obecny dla C/C++); Portable PDB (oddzielny format wieloplatformowy używany przez .NET/Roslyn)
Zestaw narzędzi producentaKompilator MSVC (`cl.exe`) i linker (`link.exe`); emitowany również przez Clang/LLVM przy targetowaniu Windows z flagami kompilatora `/Z7` lub `/Zi`
Narzędzia konsumenckieVisual Studio Debugger, WinDbg, DIA SDK, `llvm-pdbutil`, `dumpbin`; narzędzia do analizy awarii, takie jak konwertery symboli CrashPad i Breakpad
Obsługa serwera symboliPliki `.pdb` są indeksowane przez GUID + Age na serwerze symboli (poprzez `symstore.exe` lub kompatybilne serwery); debuggery pobierają poprawną kopię na żądanie, używając klucza z katalogu debugowania pliku binarnego
Obsługa platformNatywna w Windows; odczyt wieloplatformowy za pomocą narzędzi LLVM (`llvm-pdbutil`, LLDB) w systemach Linux i macOS
Typ MIMEapplication/octet-stream (brak dedykowanego zarejestrowanego podtypu MIME)
Wzorzec wdrażaniaJeden `.pdb` na cel kompilacji (`.exe` lub `.dll`); dystrybuowany jako oddzielny plik obok pliku binarnego lub przechowywany na prywatnym/publicznym serwerze symboli - nie jest osadzony w samym pliku binarnym
Wydano1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
Najnowsza wersjaMSF 7.00 ('BigMsf'); portable PDB used by .NET/Roslyn alongside it
Otwarty standardTak · bezpłatny (royalty-free)
Specyfikacjagithub.com

Konwersje PDB

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami PDB. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby

Brak pytań - bądź pierwszą osobą, która zapyta o pliki PDB.

Najczęściej zadawane pytania

Co to jest plik PDB w Visual Studio?
To Program Database - plik symboli debugowania, który kompilator tworzy obok pliku EXE/DLL. Mapuje on kod maszynowy z powrotem na pliki źródłowe, numery linii i nazwy, dzięki czemu debugger może wyświetlać czytelne ślady stosu i pozwalać na przechodzenie przez kod krok po kroku.
Jak otworzyć plik .pdb?
Zazwyczaj nie otwiera się go bezpośrednio - Visual Studio lub WinDbg ładuje go automatycznie, gdy pasuje do debugowanego pliku binarnego. Aby go sprawdzić, użyj llvm-pdbutil lub narzędzi opartych na DIA, aby zrzucić jego symbole jako tekst.
Dlaczego mój debugger twierdzi, że PDB nie pasuje do pliku binarnego?
Każdy PDB posiada znacznik GUID+Age powiązany z jedną konkretną kompilacją. Jeśli plik EXE/DLL został ponownie skompilowany, stary PDB już nie pasuje i debugger go odrzuci. Skompiluj projekt ponownie, aby uzyskać pasujący PDB, lub pobierz dokładny PDB dla tej konkretnej kompilacji.
Czy mogę przekonwertować .pdb na PDF?
Nie w przypadku PDB z Visual C++ - to binarne dane debugowania, a nie dokument. (Jeśli Twój plik .pdb to w rzeczywistości e-book Palm/eReader, który współdzieli to rozszerzenie, Calibre może go przekonwertować na PDF - ale to inny typ pliku).
Czy muszę dostarczać pliki PDB wraz z moim programem?
Nie - Twoja aplikacja działa bez nich. Pliki PDB służą wyłącznie do debugowania. Wiele zespołów przechowuje je na prywatnym serwerze symboli, aby móc później analizować zrzuty awarii bez ujawniania struktury źródłowej użytkownikom.
Czy PDB może odzyskać mój kod źródłowy?
Nie. Mapuje on na pliki źródłowe i numery linii oraz przechowuje nazwy/typy, ale nie zawiera samego kodu źródłowego. Sprawia, że debugowanie jest czytelne, ale nie rekonstruuje kodu.

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

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

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z