Freigeben über


Suchen von Symbolen

Nachdem eine Symboldatei in den Symbolhandler geladen wurde, kann eine Anwendung die Symbol-Locator-Funktionen verwenden, um Symbolinformationen für eine angegebene Adresse zurückzugeben. Diese Funktionen können auch einen Quellcodedateinamen und Zeilennummernspeicherort für eine Adresse finden.

Aufzählen von Symboldateien

Um eine Liste aller nach Modulnamen geladenen Symboldateien abzurufen, rufen Sie die Funktion SymEnumerateModules64 auf. Ein Beispiel finden Sie unter "Aufzählen von Symbolmodulen". Um eine Liste von Symbolen für ein bestimmtes Modul abzurufen, rufen Sie die Funktion SymEnumSymbols auf. Ein Beispiel finden Sie unter Enumerating Symbols.

Abrufen von Symbolen nach Adresse

Um symbolische Informationen für eine bestimmte Adresse abzurufen, verwenden Sie die SymFromAddr-Funktion . Diese Funktion ruft Informationen ab und speichert sie in einer SYMBOL_INFO Struktur. Da Symbolnamen variable Länge sind, müssen Sie nach der SYMBOL_INFO Strukturdeklaration zusätzliche Pufferraum bereitstellen. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Adresse.

Beachten Sie, dass die Adresse nicht in einer Symbolgrenze enthalten sein muss. Wenn die Adresse nach dem Anfang eines Symbols kommt, aber vor dem Ende des Symbols (der Anfang des Symbols plus der Symbolgröße), wird die Funktion das Symbol suchen.

Abrufen von Symbolsymbolen nach Symbolname

Um symbolische Informationen in einer SYMBOL_INFO Struktur für ein bestimmtes Modul und einen Symbolnamen abzurufen, verwenden Sie die SymFromName-Funktion . Wenn das Laden von verzögerten Symbolen festgelegt ist, versucht SymFromName , die Symboldatei für ein Modul zu laden, wenn sie noch nicht geladen wurde. Um einen Modulnamen zusammen mit einem Symbolnamen anzugeben, verwenden Sie das Syntaxmodul! SymName. Das Zeichen "!" trennt den Modulnamen aus dem Symbolnamen. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Name.

Abrufen von Zeilennummern nach Adresse

Um den Quellcodespeicherort für eine bestimmte Adresse abzurufen, verwenden Sie die Funktion SymGetLineFromAddr64 . Diese Funktion füllt eine IMAGEHLP_LINE64 Struktur, die den Quelldateinamen und den Zeilennummernspeicherort enthält, der durch die angegebene Adresse bezeichnet wird. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Adresse.

Abrufen von Zeilennummern nach Symbolname

Um den Quellcodespeicherort für einen bestimmten Symbolnamen abzurufen, verwenden Sie die Funktion SymGetLineFromName64 . Diese Funktion ähnelt SymGetSymFromName64, ruft jedoch eine IMAGEHLP_LINE64 Struktur ab. Um SymGetLineFromAddr64 oder SymGetLineFromName64 zu verwenden, müssen Sie die Option "Ladelinien" (SYMOPT_LOAD_LINES) mithilfe der SymSetOptions-Funktion festlegen. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Name.