Symbole

Ein Symbol ist eine benannte Dateneinheit oder Code aus einer Quelldatei, die in einem Modul angezeigt wird. Informationen zu Symbolen können den Namen, den Typ (falls zutreffend), die Adresse oder das Register, an dem sie gespeichert sind, und alle übergeordneten oder untergeordneten Symbole umfassen. Beispiele für Symbole sind Variablen (lokal und global), Funktionen und jeder Einstiegspunkt in ein Modul.

Die Symbolinformationen werden von der Engine verwendet, um Daten und Code im Ziel zu interpretieren. Mit diesen Informationen kann die Engine nach Symbolen nach Namen oder Speicherort im Arbeitsspeicher suchen und eine Beschreibung eines Symbols bereitstellen.

Die Engine ruft ihre Informationen zu Symbolen aus Symboldateien ab, die sich im lokalen Dateisystem befinden oder von einem Symbolserver geladen werden. Bei Verwendung eines Symbolservers verwendet die Engine automatisch die richtige Version der Symboldatei, um dem Modul im Ziel zu entsprechen. Symboldateien können geladen werden, wenn das entsprechende Modul geladen wird, oder sie können nach Bedarf geladen werden.

Hinweis Häufig enthalten optimierungsoptimierende Compiler keine genauen Informationen in Symboldateien. Dies kann dazu führen, dass die Engine den Wert einiger Variablen falsch interpretiert, da der Speicherort oder die Lebensdauer der Variablen falsch beschrieben werden kann, was dazu führt, dass die Engine den falschen Teil des Arbeitsspeichers betrachtet oder glaubt, dass ein Variablenwert live ist, wenn er nicht vorhanden ist (oder umgekehrt). Es ist auch möglich, dass ein optimierender Compiler die Ausführungsreihenfolge ändert oder eine Funktion in mehrere Teile aufteilt. Die besten Ergebnisse werden normalerweise beim Debuggen von nicht optimiertem Code erzielt.

Weitere Informationen

Ausführliche Informationen zur Verwendung von Symbolen finden Sie unter Verwenden von Symbolen. Eine Übersicht über die Verwendung von Symboldateien und Symbolservern finden Sie unter Symbole im Abschnitt Debugger dieser Dokumentation.