.PDB

PDB Datei

Program Database (Visual C++ Debug Symbols)
Frage stellen
SCHNELLE ANTWORT

Eine PDB-Datei ist eine Programmdatenbank - eine Debug-Symboldatei, die der Visual-Studio-Compiler neben einer kompilierten EXE oder DLL erstellt. Sie öffnen sie nicht direkt; Visual Studio oder WinDbg lädt sie beim Debuggen automatisch. Das Hauptanliegen ist nicht Schadsoftware, sondern Vertraulichkeit: Eine PDB enthüllt interne Funktionsnamen und Quellpfade - halten Sie sie daher aus öffentlichen Release-Paketen heraus.

Entwickler: Microsoft Kategorie: Developerdateien Offener Standard MIME: application/octet-stream
VERFÜGBAR AUF Windows Linux
Verwandt: .DO · .MD · .HEX · .XSD

Auf dieser Seite

19k+ Erweiterungen indexiert
Zuletzt geprüft Aug 16, 2026

Nicht sicher, was Ihre Datei ist?

Legen Sie eine beliebige Datei in unseren Identifikator - wir lesen nur die ersten Bytes, um das Format zu benennen.

Datei identifizieren

Was ist das PDB-Dateiformat?

.pdb-Dateien enthalten eine Datenbank für ein Programm - konkret einen strukturierten Speicher von Debug-Symbolen, Quelldatei-Zuordnungen und Typinformationen, der vom Microsoft-Visual-C++-Toolchain erzeugt wird. Sie werden zusammen mit der passenden .exe- oder .dll-Datei verwendet, mit der sie kompiliert wurden; sie sind nicht in diese Binärdateien eingebettet, sondern als separate Dateien verteilt.

Debugging-Informationen

In .pdb-Dateien gespeicherte Debug-Symbole ermöglichen es Debuggern, wichtige Informationen zu Ausnahmen weiterzugeben, Speicheradressen auf Quelldatei-Zeilennummern zurückzuverfolgen und Funktions- und Variablennamen offenzulegen, die aus der finalen Binärdatei entfernt wurden. Sie sind bei der Fehlerbehebung sowohl in Entwicklungs- als auch in Produktionsumgebungen hilfreich.

Wie .pdb-Dateien erstellt werden

.pdb-Dateien werden während des Kompilierungsprozesses vom MSVC-Compiler (cl.exe) und Linker (link.exe) aus Quelldateien generiert. Sie sind *kein* Produkt der Just-in-Time-Kompilierung (JIT) - das ist ein weit verbreitetes Missverständnis. Moderne .pdb-Dateien verwenden den mit Visual Studio .NET eingeführten MSF-7.00-Container (Multi-Stream File). Jede .pdb ist über eine GUID und einen Age-Zähler mit ihrer Binärdatei verknüpft; eine .pdb aus einem anderen Build wird nicht geladen. Da das Format proprietär ist, können es nur dedizierte Werkzeuge wie Visual Studio, WinDbg oder llvm-pdbutil lesen, obwohl Microsoft eine Referenzimplementierung veröffentlicht hat.

Sicherheit

RISIKO: LOW

Eine PDB ist passive Daten, die von Debuggern gelesen werden - sie enthält keinen ausführbaren Code, daher ist das Öffnen sicher. Das eigentliche Problem ist Vertraulichkeit, nicht Schadsoftware: Eine PDB enthüllt interne Funktionsnamen, Quelldateipfade und Codestruktur - das Ausliefern oder Preisgeben einer PDB legt Informationen über die Interna Ihrer Software offen (nützlich für Reverse-Engineer). Bewahren Sie Release-PDBs auf einem privaten Symbolserver auf, anstatt sie mit dem Produkt zu bündeln.

Formatdetails

kurz gefasst
VOLLSTÄNDIGER NAMEProgram Database (Visual C++ Debug Symbols)alias PDB symbol file, Microsoft Program Database
ENTWICKLERMicrosoftseit 1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
MIME TYPEapplication/octet-stream
TYPBinärer Debug-Symbol-Container (Multi-Stream File / MSF), erzeugt durch den MSVC-Toolchain
STANDARDOffen · lizenzfrei
Diese Erweiterung wird auch verwendet von…
  • Palm OS Database (PalmPilot / eReader-E-Book) - PRC/PDB Palm-Datenbank - E-Books und PDA-App-Daten (Header '...' bei Offset 0x3C); mit Palm/eReader-Werkzeugen geöffnet, nicht mit Visual Studio.
  • Protein Data Bank Molekülstruktur - Eine Klartextdatei im PDB-Format, die 3D-Atomkoordinaten eines Moleküls beschreibt; geöffnet von PyMOL/Chimera/Jmol.
  • Quicken Preis-/Portfoliodaten (.pdb) - Intuit Quicken schrieb eine .pdb-Datendatei - die Bedeutung, die die Datenbank fälschlicherweise an den „Quicken“-Öffner geknüpft hat.
MAGIC BYTES · DATEISIGNATUR
OFFSET
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c
HEX
4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453
ASCII
Microsoft C/C++ MSF 7.00···DS
Moderne MSVC-PDBs beginnen mit dem 0x20-Byte-MSF-7.00-SuperBlock-Magic "Microsoft C/C++ MSF 7.00\r\n\x1aDS\0\0\0". Ältere PDB-2.0-Dateien beginnen mit "Microsoft C/C++ program database 2.00\r\n\x1aJG". (Nicht verwandt: Eine Palm-PDB und eine Protein-Data-Bank-PDB sind verschiedene Dateien, die diese Erweiterung teilen - siehe also_used_by.)

Programme zum Öffnen von PDB-Dateien

Windows4 apps
Visual Studio Freemium PDBs werden beim Debuggen eines passenden Builds automatisch geladen; für einen Dump: Datei > Öffnen > Absturz-Dump und unter Extras > Optionen > Debugging > Symbole auf den PDB-Ordner verweisen. Die Community-Edition ist kostenlos.
WinDbg (Debugging Tools for Windows) Kostenlos Setzen Sie den Symbolpfad (.sympath) auf den PDB-Ordner/Symbolserver, dann laden Sie den Dump oder das aktive Ziel - WinDbg löst Symbole aus der PDB auf.
llvm-pdbutil Open Source Befehlszeile: 'llvm-pdbutil dump' untersucht Streams, Typen und Symbole innerhalb einer PDB - nützlich zur Überprüfung oder Erkundung ohne einen Debugger.
dumpbin / DIA SDK tools Integriert Wird mit Visual Studio geliefert; untersucht das Debug-Verzeichnis einer Binärdatei und liest (über DIA) PDB-Inhalte programmgesteuert.
Linux1 app
llvm-pdbutil Open Source Befehlszeile: 'llvm-pdbutil dump' untersucht Streams, Typen und Symbole innerhalb einer PDB - nützlich zur Überprüfung oder Erkundung ohne einen Debugger.

Technische Details

technische Spezifikation
Container-FormatMSF (Multi-Stream File) - ein seitenbasierter interner Stream-Container, der mehrere benannte Datenströme in einer einzigen Datei enthält
Dateisignatur (Magic Bytes)Beginnt mit der ASCII-Zeichenkette `Microsoft C/C++ MSF 7.00` gefolgt von CR LF und spezifischen Steuer-Bytes bei Offset 0; ältere PDB-2.0-Dateien beginnen mit `Microsoft C/C++ program database 2.00`
CodierungBinär, Little-Endian-Bytereihenfolge durchgehend
Interne StreamsDBI (Debug-Informationen), TPI/IPI (Typ- und ID-Datensätze), öffentliche und globale Symbol-Streams, modulbezogene Symbol-Streams und Quell-/Zeilennummer-Zuordnungstabellen
Binärer VerknüpfungsschlüsselGUID + Age-Zähler, sowohl in die `.pdb` als auch in das Debug-Verzeichnis der zugehörigen `.exe` oder `.dll` geschrieben; eine Nichtübereinstimmung führt dazu, dass der Debugger die Symboldatei ablehnt
Typische Dateigröße100 KB bis 500 MB; große native C++-Projekte erzeugen routinemäßig `.pdb`-Dateien mit mehreren Hundert Megabyte
KomprimierungKeine - Daten sind seitenstrukturiert, aber nicht komprimiert
Seitengröße4-KB-Seiten in MSF 7.00 (BigMsf); der ältere MSF-2.0-Container verwendete kleinere Seitengrößen
FormatvariantenPDB 2.00 (Legacy-JG-Magic, MSVC 6.0 und früher); MSF 7.00 / BigMsf (Visual Studio .NET und später, aktuell für C/C++); Portable PDB (separates plattformübergreifendes Format für .NET/Roslyn)
Erzeugender ToolchainMSVC-Compiler (`cl.exe`) und Linker (`link.exe`); auch von Clang/LLVM ausgegeben, wenn Windows mit den Compiler-Flags `/Z7` oder `/Zi` als Ziel verwendet wird
Verwendende WerkzeugeVisual Studio Debugger, WinDbg, DIA SDK, `llvm-pdbutil`, `dumpbin`; Absturzanalyse-Werkzeuge wie CrashPad und Breakpad-Symbol-Konverter
Symbolserver-Unterstützung`.pdb`-Dateien werden auf einem Symbolserver nach GUID + Age indiziert (über `symstore.exe` oder kompatible Server); Debugger rufen auf Anfrage die richtige Kopie mithilfe des Schlüssels aus dem Debug-Verzeichnis der Binärdatei ab
PlattformunterstützungNativ unter Windows; plattformübergreifendes Lesen über LLVM-Werkzeuge (`llvm-pdbutil`, LLDB) unter Linux und macOS
MIME-Typapplication/octet-stream (kein eigener registrierter MIME-Untertyp)
VerteilungsmusterEine `.pdb` pro Build-Ziel (`.exe` oder `.dll`); als separate Datei neben der Binärdatei verteilt oder auf einem privaten/öffentlichen Symbolserver gespeichert - nicht in die Binärdatei eingebettet
Veröffentlicht1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
Neueste VersionMSF 7.00 ('BigMsf'); portable PDB used by .NET/Roslyn alongside it
Offener StandardJa · lizenzgebührenfrei
Spezifikationgithub.com

PDB-Konvertierungen

Community Q&A

von Nutzern gefragt
Schnelle Frage stellen
Holen Sie sich Hilfe von Menschen, die mit PDB-Dateien arbeiten. Seien Sie konkret - geben Sie Ihr System und die Softwareversion an.
Kein Konto erforderlich · Antworten meist innerhalb eines Tages

Noch keine Fragen - stellen Sie die erste Frage zu PDB-Dateien.

Häufig gestellte Fragen

Was ist eine PDB-Datei in Visual Studio?
Es handelt sich um eine Programmdatenbank - eine Debug-Symboldatei, die der Compiler neben Ihrer EXE/DLL erstellt. Sie bildet Maschinencode auf Quelldateien, Zeilennummern und Namen ab, sodass der Debugger lesbare Stack-Traces anzeigen und durch den Code schrittweise führen kann.
Wie öffne ich eine .pdb-Datei?
Normalerweise öffnen Sie sie nicht direkt - Visual Studio oder WinDbg lädt sie automatisch, wenn sie zur zu debuggenden Binärdatei passt. Um eine zu untersuchen, verwenden Sie llvm-pdbutil oder DIA-basierte Werkzeuge, um ihre Symbole als Text auszugeben.
Warum sagt mein Debugger, dass die PDB nicht zur Binärdatei passt?
Jede PDB trägt einen GUID+Age-Stempel, der an einen bestimmten Build gebunden ist. Wenn die EXE/DLL neu kompiliert wurde, stimmt die alte PDB nicht mehr überein, und der Debugger lehnt sie ab. Erstellen Sie einen neuen Build, um eine passende PDB zu erhalten, oder besorgen Sie sich die genaue PDB für diesen Build.
Kann ich eine .pdb in PDF umwandeln?
Nicht bei einer Visual-C++-PDB - das sind binäre Debug-Daten, kein Dokument. (Wenn Ihre .pdb tatsächlich ein Palm/eReader-E-Book ist, das die Erweiterung teilt, kann Calibre jenes in PDF konvertieren - aber das ist ein anderer Dateityp.)
Muss ich PDB-Dateien mit meinem Programm ausliefern?
Nein - Ihre Anwendung läuft ohne sie. PDBs dienen nur dem Debuggen. Viele Teams speichern sie auf einem privaten Symbolserver, um Absturz-Dumps später analysieren zu können, ohne die Quellstruktur für Benutzer offenzulegen.
Kann eine PDB meinen Quellcode wiederherstellen?
Nein. Sie bildet auf Quelldateien und Zeilennummern ab und speichert Namen und Typen, enthält aber nicht den Quellcode selbst. Sie macht das Debuggen lesbar; sie rekonstruiert Ihren Code nicht.

Quellen

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

Weiter entdecken

in der Datenbank

Top-Erweiterungen dieser Woche

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

Verwandte Erweiterungen

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

Kostenlose Datei-Tools

Ein Browser-Dateiidentifikator und Bildkonverter - alles läuft auf Ihrem Gerät.

Toolbox öffnen

Dateierweiterungen A-Z durchsuchen