Freigeben über


Verwenden von Symbolen

Eine Übersicht über Symbole, einschließlich der Verwendung von Symboldateien und Symbolservern, finden Sie unter Symbole.

Symbolnamen und -speicherorte

Verwenden Sie GetOffsetByName, um die Position eines Symbols zu ermitteln, das seinem Namen zugewiesen wird. Ausführliche Informationen zur Syntax, die zum Angeben von Symbolnamen verwendet wird, finden Sie unter Symbolsyntax und Symbolabgleich.

Wenn der genaue Name eines Symbols nicht bekannt ist oder mehrere Symbole denselben Namen haben, beginnt StartSymbolMatch mit der Suche nach Symbolen, deren Namen einem bestimmten Muster entsprechen. Ausführliche Informationen zur Syntax finden Sie unter Zeichenfolgenplatzhaltersyntax.

Verwenden Sie GetNameByOffset, um den Namen eines Symbols anhand seiner Position zu ermitteln. Um die Namen von Symbolen in einem Modul in der Nähe eines bestimmten Speicherorts zu finden, verwenden Sie GetNearNamebyOffset.

Hinweis Qualifizieren Sie das Symbol nach Möglichkeit mit dem Modulnamen , z. B. mymodule!Standard. Andernfalls, wenn das Symbol nicht vorhanden ist (z. B. aufgrund eines Typografiefehlers), muss die Engine die Symbole für jedes Modul laden und durchsuchen. Dies kann ein langsamer Prozess sein, insbesondere für das Debuggen im Kernelmodus. Wenn der Symbolname mit einem Modulnamen qualifiziert wurde, muss die Engine nur die Symbole für dieses Modul durchsuchen.

Ein Symbol wird mithilfe der Struktur DEBUG_MODULE_AND_ID eindeutig identifiziert. Diese Struktur wird von den Methoden GetSymbolEntriesByName und GetSymbolEntriesByOffset zurückgegeben, die anhand ihres Namens bzw. ihrer Position nach Symbolen suchen.

Die GetSymbolEntryInformation-Methode gibt mithilfe der DEBUG_SYMBOL_ENTRY-Struktur eine Beschreibung eines Symbols zurück.

Verwenden Sie GetFieldOffset, um den Offset eines Felds innerhalb einer Struktur zu ermitteln. Verwenden Sie GetFieldName, um den Namen eines Felds zu ermitteln, das seinen Index innerhalb einer -Struktur enthält. Verwenden Sie GetConstantName, um den Namen einer Enumerationskonstanten anhand ihres Werts zu ermitteln.

Die GetSymbolInformation-Methode kann mehrere Anforderungen für Informationen zu Symbolen ausführen.

Symboloptionen

Eine Reihe von Optionen steuert, wie die Symbole geladen und entladen werden. Eine Beschreibung dieser Optionen finden Sie unter Festlegen von Symboloptionen.

Symboloptionen können mithilfe von AddSymbolOptions aktiviert und mithilfe von RemoveSymbolOptions deaktiviert werden.

GetSymbolOptions gibt die aktuellen Symboloptionen zurück. Um alle Symboloptionen gleichzeitig festzulegen, verwenden Sie SetSymbolOptions.

Erneutes Laden von Symbolen

Nach dem Laden von Symboldateien speichert die Engine die Symbolinformationen in einem internen Cache. Verwenden Sie Erneut laden, um diesen Cache zu leeren. Diese Symbole müssen jetzt oder zu einem späteren Zeitpunkt erneut geladen werden.

Synthetische Symbole

Synthetische Symbole sind eine Möglichkeit, eine beliebige Adresse zur einfachen Referenz zu bezeichnen. Synthetische Symbole können in jedem vorhandenen Modul erstellt werden. Die AddSyntheticSymbol-Methode erstellt ein neues synthetisches Symbol. Synthetische Symbole können mithilfe von RemoveSyntheticSymbol entfernt werden. Beim erneuten Laden der Symbole für das Modul werden alle synthetischen Symbole gelöscht, die diesem Modul zugeordnet sind.

Symbolpfad

Um dem Symbolpfad ein Verzeichnis oder einen Symbolserver hinzuzufügen, verwenden Sie die Methode AppendSymbolPath. Der gesamte Symbolpfad wird von GetSymbolPath zurückgegeben und kann mithilfe von SetSymbolPath geändert werden.