Symboldateien
Normalerweise werden Debuginformationen in einer von der ausführbaren Datei getrennten Symboldatei gespeichert. Die Implementierung dieser Debuginformationen hat sich im Laufe der Jahre geändert, und die folgende Dokumentation enthält Anleitungen zu diesen verschiedenen Implementierungen.
PDB-Dateien
Alle modernen Versionen der Microsoft-Compiler speichern Debuginformationen zu einer kompilierten ausführbaren Datei in einer separaten Programmdatenbankdatei (PDB). Diese Datei wird häufig als PDB bezeichnet. Die Daten werden in einer separaten Datei von der ausführbaren Datei gespeichert, um die Größe der ausführbaren Datei zu begrenzen, Speicherplatz auf dem Datenträger zu sparen und die Zeit zu reduzieren, die zum Laden der Daten benötigt wird. Diese Methodik ermöglicht es auch, die ausführbare Datei zu verteilen, ohne diese wichtigen Informationen offenzulegen, was das Reverse Engineering des Programms erleichtern könnte.
Um eine PDB zu erstellen, erstellen Sie Ihre ausführbare Datei mit Debuginformationen gemäß den Anweisungen für Ihre Buildtools.
Die DbgHelp-API kann PDBs verwenden, um die folgenden Informationen abzurufen.
- Publics und Exporte
- Globale Symbole
- lokale Symbole
- Typdaten
- Quelldateien
- Zeilennummern
DBG-Dateien und eingebettete Debuginformationen
Frühere Versionen des Microsoft-Toolsets, die zum Einbetten der Debuginformationen in die ausführbare Datei verwendet wurden, würden jedoch normalerweise in eine separate Datei mit der Erweiterung .dbg entfernt. Dies wird allgemein als DBG-Datei bezeichnet. DBG-Dateien verwenden das gleiche PE-Dateiformat wie ausführbare Dateien.
Die DbgHelp-API-Unterstützung für DBGs und eingebettete Debuginformationen ist eingeschränkt und umfasst Folgendes.
- Publics und Exporte
- Globale Symbole