.PDB

PDB-bestand

Program Database (Visual C++ Debug Symbols)
Stel een vraag
SNEL ANTWOORD

Een PDB-bestand is een Program Database - een bestand met debug-symbolen dat de Visual Studio-compiler aanmaakt naast een gecompileerde EXE of DLL. U opent het niet rechtstreeks; Visual Studio of WinDbg laadt het automatisch tijdens het debuggen. Het belangrijkste aandachtspunt is niet malware, maar vertrouwelijkheid: een PDB onthult interne functienamen en bronpaden, dus houd het buiten openbare release-pakketten.

Ontwikkelaar: Microsoft Categorie: Ontwikkelaarsbestanden Open standaard MIME: application/octet-stream
OPENT OP Windows Linux
Gerelateerd: .DO · .MD · .HEX · .XSD

Op deze pagina

19k+ extensies geïndexeerd
Laatst beoordeeld op Aug 16, 2026

Niet zeker wat uw bestand is?

Sleep een bestand naar onze identificatietool - we lezen alleen de eerste bytes om het formaat te benoemen.

Identificeer een bestand

Wat is het PDB-bestandsformaat?

.pdb-bestanden bevatten een database voor een programma - specifiek een gestructureerde opslag van debug-symbolen, bronbestand-mappings en type-informatie geproduceerd door de Microsoft Visual C++ toolchain. Ze worden gebruikt in combinatie met de bijbehorende .exe of .dll waarvan ze zijn gecompileerd; ze zijn niet ingebed in die binaire bestanden, maar worden als afzonderlijke bestanden gedistribueerd.

Debugging-informatie

Debug-symbolen opgeslagen in .pdb-bestanden laten debuggers belangrijke informatie over uitzonderingen doorgeven, geheugenadressen terugkoppelen naar regelnummers in bronbestanden en functie- en variabelenamen blootleggen die uit het uiteindelijke binaire bestand zijn verwijderd. Ze zijn nuttig bij het oplossen van programmafouten en het aanpakken van fouten in zowel ontwikkel- als productieomgevingen.

Hoe .pdb-bestanden worden gemaakt

.pdb-bestanden worden gegenereerd uit bronbestanden tijdens het compilatieproces door de MSVC-compiler (cl.exe) en linker (link.exe). Ze zijn *geen* product van Just-In-Time (JIT) compilatie - dat is een veelvoorkomend misverstand. Moderne .pdb-bestanden gebruiken de MSF 7.00 (Multi-Stream File) binaire container die werd geïntroduceerd met Visual Studio .NET. Elke .pdb is gekoppeld aan zijn binaire bestand via een GUID en Age-teller; een .pdb van een andere build zal niet laden. Omdat het formaat eigendomsrechtelijk is beschermd, kunnen alleen speciale tools zoals Visual Studio, WinDbg of llvm-pdbutil ze lezen, hoewel Microsoft een referentie-implementatie heeft gepubliceerd.

Beveiliging & veiligheid

RISICO: LOW

Een PDB bevat passieve gegevens die door debuggers worden gelezen - het bevat geen uitvoerbare code, dus het openen ervan is veilig. De echte zorg is vertrouwelijkheid, niet malware: een PDB onthult interne functienamen, bronbestandspaden en codestructuur, dus het verzenden of lekken ervan stelt informatie over de interne werking van uw software bloot (nuttig voor reverse-engineers). Bewaar release-PDB's op een privé-symboolserver in plaats van ze met het product te bundelen.

Formaatdetails

in een notendop
VOLLEDIGE NAAMProgram Database (Visual C++ Debug Symbols)ook bekend als PDB symbol file, Microsoft Program Database
ONTWIKKELAARMicrosoftsinds 1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
MIME-TYPEapplication/octet-stream
TYPEBinaire debug-symboolcontainer (Multi-Stream File / MSF) geproduceerd door de MSVC-toolchain
STANDAARDOpen · royaltyvrij
GERELATEERD.do.md.hex.xsd
Deze extensie wordt ook gebruikt door…
  • Palm OS Database (PalmPilot / eReader boek) - PRC/PDB Palm-database - e-books en PDA-app-gegevens (header '...' op offset 0x3C); geopend door Palm/eReader-tools, niet door Visual Studio.
  • Protein Data Bank moleculaire structuur - Een PDB-bestand in platte tekst dat de 3D-atomaire coördinaten van een molecuul beschrijft; geopend door PyMOL/Chimera/Jmol.
  • Quicken prijs/portfolio-gegevens (.pdb) - Intuit Quicken schreef een .pdb-gegevensbestand - de betekenis waaraan de database per vergissing zijn 'Quicken'-opener heeft gekoppeld.
MAGIC BYTES · BESTANDSSIGNATUUR
OFFSET
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c
HEX
4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453
ASCII
Microsoft C/C++ MSF 7.00···DS
Moderne MSVC PDB's beginnen met de 0x20-byte MSF 7.00 SuperBlock magic „Microsoft C/C++ MSF 7.00\r\n\x1aDS\0\0\0”. Oudere PDB 2.0-bestanden beginnen met „Microsoft C/C++ program database 2.00\r\n\x1aJG”. (Niet gerelateerd: een Palm PDB en een Protein Data Bank PDB zijn verschillende bestanden die deze extensie delen - zie also_used_by.)

Programma's die PDB-bestanden openen

Windows4 apps
Visual Studio Freemium PDB's worden automatisch geladen bij het debuggen van een overeenkomstige build; voor een dump, ga naar File > Open > Crash Dump en verwijs via Tools > Options > Debugging > Symbols naar de PDB-map. De Community-editie is gratis.
WinDbg (Debugging Tools for Windows) Gratis Stel het symboolpad (.sympath) in op de PDB-map/symboolserver en laad vervolgens de dump of het live-doel - WinDbg herleidt de symbolen uit de PDB.
llvm-pdbutil Open-source Opdrachtregel: 'llvm-pdbutil dump' inspecteert streams, types en symbolen binnen een PDB - handig om er een te verifiëren of te verkennen zonder debugger.
dumpbin / DIA SDK tools Ingebouwd Wordt geleverd bij Visual Studio; inspecteer de debug-directory van een binair bestand en lees (via DIA) PDB-inhoud programmatisch uit.
Linux1 app
llvm-pdbutil Open-source Opdrachtregel: 'llvm-pdbutil dump' inspecteert streams, types en symbolen binnen een PDB - handig om er een te verifiëren of te verkennen zonder debugger.

Technische details

diepe specificaties
ContainerformaatMSF (Multi-Stream File) - een op pagina's gebaseerde interne stream-container die meerdere benoemde datastreams binnen één bestand bevat
Bestandssignatuur (magic bytes)Begint met de ASCII-tekenreeks `Microsoft C/C++ MSF 7.00` gevolgd door CR LF en specifieke controlevariabelen op offset 0; legacy PDB 2.0-bestanden beginnen met `Microsoft C/C++ program database 2.00`
CoderingBinair, overal little-endian bytevolgorde
Interne streamsDBI (Debug Information), TPI/IPI (type- en ID-records), publieke en globale symboolstreams, symboolstreams per module, en mappingtabellen voor bronbestanden/regelnummers
Binaire koppelingssleutelGUID + Age-teller geschreven in zowel de `.pdb` als de debug-directory van de bijbehorende `.exe` of `.dll`; een mismatch zorgt ervoor dat de debugger het symboolbestand weigert
Typische bestandsgrootte100 KB tot 500 MB; grote native C++ projecten produceren routinematig `.pdb`-bestanden van honderden megabytes
CompressieGeen - gegevens zijn paginagestructureerd maar niet gecomprimeerd
Paginagrootte4 KB pagina's in MSF 7.00 (BigMsf); de oudere MSF 2.0-container gebruikte kleinere paginagrootten
FormaatvariantenPDB 2.00 (legacy JG magic, MSVC 6.0 en eerder); MSF 7.00 / BigMsf (Visual Studio .NET en later, huidig voor C/C++); Portable PDB (afzonderlijk cross-platform formaat gebruikt door .NET/Roslyn)
Producent toolchainMSVC-compiler (`cl.exe`) and linker (`link.exe`); ook uitgegeven door Clang/LLVM bij het targeten van Windows met `/Z7` of `/Zi` compiler-flags
Consumer toolsVisual Studio Debugger, WinDbg, DIA SDK, `llvm-pdbutil`, `dumpbin`; crash-analysetools zoals CrashPad en Breakpad symboolconverters
Ondersteuning voor symboolservers`.pdb`-bestanden worden geïndexeerd op GUID + Age op een symboolserver (via `symstore.exe` of compatibele servers); debuggers halen de juiste kopie op aanvraag op met de sleutel uit de debug-directory van het binaire bestand
PlatformondersteuningNative op Windows; cross-platform uitlezen via LLVM-tools (`llvm-pdbutil`, LLDB) op Linux en macOS
MIME-typeapplication/octet-stream (geen specifiek geregistreerd MIME-subtype)
ImplementatiepatroonEén `.pdb` per build-target (`.exe` of `.dll`); gedistribueerd als een apart bestand naast het binaire bestand of opgeslagen op een privé/publieke symboolserver - niet ingebed in het binaire bestand zelf
Uitgebracht1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
Laatste versieMSF 7.00 ('BigMsf'); portable PDB used by .NET/Roslyn alongside it
Open standaardJa · royaltyvrij
Specificatiegithub.com

PDB conversies

Community V&A

gevraagd door gebruikers
Stel een korte vraag
Krijg hulp van mensen die met PDB-bestanden werken. Wees specifiek - vermeld uw systeem en softwareversie.
Geen account nodig · antwoorden meestal binnen een dag

Nog geen vragen - wees de eerste om iets te vragen over PDB-bestanden.

Veelgestelde vragen

Wat is een PDB-bestand in Visual Studio?
Het is een Program Database - een bestand met debug-symbolen dat de compiler aanmaakt naast uw EXE/DLL. Het koppelt machinecode terug naar bronbestanden, regelnummers en namen, zodat de debugger leesbare stack traces kan tonen en u door de code kunt stappen.
Hoe open ik een .pdb-bestand?
Normaal gesproken opent u het niet rechtstreeks - Visual Studio of WinDbg laadt het automatisch wanneer het overeenkomt met het binaire bestand dat u debugt. Om er een te inspecteren, gebruikt u llvm-pdbutil of op DIA gebaseerde tools om de symbolen als tekst te dumpen.
Waarom zegt mijn debugger dat de PDB niet overeenkomt met het binaire bestand?
Elke PDB bevat een GUID+Age-stempel die gekoppeld is aan één specifieke build. Als de EXE/DLL opnieuw is gecompileerd, komt de oude PDB niet meer overeen en weigert de debugger deze. Compileer opnieuw om een passende PDB te krijgen, of haal de exacte PDB voor die build op.
Kan ik een .pdb converteren naar PDF?
Niet voor een Visual C++ PDB - het zijn binaire debug-gegevens, geen document. (Als uw .pdb eigenlijk een Palm/eReader e-book is, die dezelfde extensie deelt, kan Calibre die wel naar PDF converteren - maar dat is een ander bestandstype.)
Moet ik PDB-bestanden meesturen met mijn programma?
Nee - uw app werkt ook zonder. PDB's zijn alleen voor debugging. Veel teams bewaren ze op een privé-symboolserver, zodat ze later crash-dumps kunnen analyseren zonder de bronstructuur aan gebruikers bloot te stellen.
Kan een PDB mijn broncode herstellen?
Nee. Het verwijst naar bronbestanden en regelnummers en slaat namen/types op, maar het bevat niet de broncode zelf. Het maakt debuggen leesbaar; het reconstrueert uw code niet.

Referenties

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

Blijf ontdekken

door de database

Populaire extensies deze week

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

Gerelateerde extensies

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

Gratis bestandstools

Een bestandsidentificatie en afbeeldingsconverter in de browser - alles draait op uw eigen apparaat.

Open de gereedschapskist

Blader door bestandsextensies A-Z