WdbgExts-Symbole
Dieses Thema bietet eine kurze Übersicht darüber, wie Symbole mithilfe der WdbgExts-API bearbeitet werden können. Eine Übersicht über die Verwendung von Symbolen in der Debugger-Engine finden Sie unter Symbole im Abschnitt Übersicht über die Debugger-Engine dieser Dokumentation.
Verwenden Sie zum Auswerten eines MASM- oder C++-Ausdrucks die Funktionen GetExpression oder GetExpressionEx.
Um den Wert eines Members in einer Struktur zu lesen, verwenden Sie die GetFieldData-Funktion , oder wenn das Element einen primitiven Wert enthält, kann GetFieldValue verwendet werden. Verwenden Sie die GetTypeSize-Funktion, um die Größe eines instance eines Symbols im Speicher des Ziels zu bestimmen.
Um den Offset eines Elements in einer Struktur zu suchen, verwenden Sie die GetFieldOffset-Funktion .
Um mehrere Member in einer Struktur zu lesen, verwenden Sie zunächst die InitTypeRead-Funktion , um die -Struktur zu initialisieren. Anschließend können Sie die ReadField-Funktion verwenden, um die Member mit einer Größe von weniger als oder gleich 8 Byte einzeln zu lesen. Verwenden Sie für Strukturadressen im physischen Speicher die Funktion InitTypeReadPhysical anstelle von InitTypeRead.
Es gibt zwei Funktionen, die Sie zum Durchlaufen von verknüpften Listen verwenden können. Für doppelt verknüpfte Listen, die die LIST_ENTRY32- oder LIST_ENTRY64-Strukturen verwenden, kann die Funktion ReadListEntry verwendet werden, um die nächsten und vorherigen Einträge zu finden. Die Funktion ListType durchschreibt alle Einträge in einer verknüpften Liste und ruft für jeden Eintrag eine Rückruffunktion auf.
Verwenden Sie die GetSymbol-Funktion , um ein Symbol in der Nähe einer angegebenen Adresse im Speicher des Ziels zu suchen.
Verwenden Sie die Funktion ReloadSymbols , um alle Symbolinformationen aus dem Cache der Debugger-Engine zu löschen. Verwenden Sie die GetSetSympath-Funktion , um den Symbolpfad zu lesen oder zu ändern, der zum Suchen nach Symboldateien verwendet wird.
Fast alle Symbolvorgänge, die von der Debugger-Engine bereitgestellt werden, können mit dem Ioctl-VorgangIG_DUMP_SYMBOL_INFO ausgeführt werden. Obwohl es sich um eine sehr flexible Funktion handelt, ist sie erweitert, und es wird empfohlen, die oben genannten einfacheren Funktionen zu verwenden, falls zutreffend.
Zusätzliche Informationen
Eine leistungsfähigere Symbol-API finden Sie unter Verwenden von Symbolen im Abschnitt Verwenden der Debugger-Engine-API dieser Dokumentation.