Symboldateien
Normalerweise werden Debuginformationen in einer Symboldatei getrennt von der ausführbaren Datei 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)-Datei. 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 zu sparen und die Zeit zu verringern, 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, wodurch das Programm das Reverse Engineering erleichtern könnte.
Um einen 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.
- Öffentliche Und Exporte
- Globale Symbole
- Lokale Symbole
- Typdaten
- Quelldateien
- Zeilennummern
DBG-Dateien und eingebettete Debuginformationen
In früheren Versionen des Microsoft-Toolsets wurden die Debuginformationen in die ausführbare Datei eingebettet, es würde jedoch normalerweise in eine separate Datei mit einer DBG-Erweiterung entfernt. Dies wird häufig 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.
- Öffentliche Und Exporte
- Globale Symbole