Freigeben über


Symbole und Symboldateien

Wenn Anwendungen, Bibliotheken, Treiber oder Betriebssysteme verknüpft sind, erstellt der Linker die .exe- und .dll-Dateien sowie eine Reihe zusätzlicher Dateien, die als Symboldateien bezeichnet werden.

Symboldateien enthalten eine Vielzahl von Daten, die beim Ausführen der Binärdateien nicht tatsächlich benötigt werden, was aber beim Debuggen sehr nützlich sein könnte.

Symboldateien können in der Regel Folgendes enthalten:

  • Globale Variablen

  • Lokale Variablen

  • Funktionsnamen und die Adressen ihrer Einstiegspunkte

  • Framepointer-Auslassungseinträge (FPO)

  • Quellzeilennummern

Jedes dieser Elemente wird einzeln als Symbol bezeichnet. Beispielsweise kann eine einzelne Symboldatei Myprogram.pdb mehrere hundert Symbole enthalten, darunter globale Variablen und Funktionsnamen und Hunderte lokaler Variablen. Softwareunternehmen veröffentlichen häufig zwei Versionen jeder Symboldatei: eine vollständige Symboldatei, die sowohl öffentliche Symbole als auch private Symbole enthält, und eine reduzierte (entfernte) Datei, die nur öffentliche Symbole enthält. Weitere Informationen finden Sie unter "Öffentliche und private Symbole".

Beim Debuggen müssen Sie sicherstellen, dass der Debugger auf die Symboldateien zugreifen kann, die dem Ziel zugeordnet sind, das Sie debuggen. Sowohl das Livedebugging als auch das Debuggen von Absturzabbilddateien erfordern Symbole. Sie müssen die richtigen Symbole für den Code abrufen, den Sie debuggen möchten, und diese Symbole in den Debugger laden.

Windows-Symbole

Windows behält seine Symbole in Dateien mit der Erweiterung PDB bei.

Der Compiler und der Linker steuern das Symbolformat. Der Visual C++-Linker platziert alle Symbole in PDB-Dateien.

Das Windows-Betriebssystem wurde in zwei Versionen erstellt. Der kostenlose Build (oder Verkaufsbuild) verfügt über relativ kleine Binärdateien, und der überprüfte Build (oder Debugbuild) verfügt über größere Binärdateien mit mehr Debugsymbolen im Code selbst. Überprüfte Builds waren in älteren Versionen von Windows vor Windows 10, Version 1803, verfügbar. Jeder dieser Builds verfügte über eigene Symboldateien. Beim Debuggen eines Ziels unter Windows müssen Sie die Symboldateien verwenden, die dem Build von Windows auf dem Ziel entsprechen.

In der folgenden Tabelle sind einige der Verzeichnisse aufgeführt, die in einer Windows-Standardsymbolstruktur vorhanden sind:

Verzeichnis Enthält Symboldateien für

ACM

Microsoft Audio Compression Manager-Dateien

COM

Ausführbare Dateien (.com)

CPL

Systemsteuerungsprogramme

DLL

Dynamische Linkbibliothek-Dateien (.dll)

DRV

Treiberdateien (.drv)

EXE

Ausführbare Dateien (.exe)

SCR

Bildschirmschonerdateien

SYS

Treiberdateien (.sys)