Suchen von Symbolen

Nachdem eine Symboldatei in den Symbolhandler geladen wurde, kann eine Anwendung mithilfe der Symbollocatorfunktionen Symbolinformationen für eine angegebene Adresse zurückgeben. Diese Funktionen können auch einen Quellcodedateinamen und einen Zeilennummerspeicherort für eine Adresse finden.

Aufzählen von Symboldateien

Rufen Sie die SymEnumerateModules64-Funktion auf, um eine Liste aller Symboldateien abzurufen, die durch den Modulnamen geladen wurden. Ein Beispiel finden Sie unter Aufzählen von Symbolmodulen. Um eine Liste von Symbolen für ein bestimmtes Modul abzurufen, rufen Sie die SymEnumSymbols-Funktion auf. Ein Beispiel finden Sie unter Aufzählen von Symbolen.

Abrufen von Symbolen nach Adresse

Verwenden Sie die SymFromAddr-Funktion, um symbolische Informationen für eine bestimmte Adresse abzurufen. Diese Funktion ruft Informationen ab und speichert sie in einer SYMBOL _ INFO-Struktur. Da Symbolnamen eine variable Länge haben, müssen Sie zusätzlichen Pufferspeicher nach der SYMBOL _ INFO-Strukturdeklaration bereitstellen. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Adresse.

Beachten Sie, dass sich die Adresse nicht an einer Symbolgrenze befinden muss. Wenn die Adresse nach dem Anfang eines Symbols, aber vor dem Ende des Symbols (dem Anfang des Symbols plus der Symbolgröße) liegt, sucht die Funktion nach dem Symbol.

Abrufen von Symbolen nach Symbolname

Verwenden Sie die SymFromName-Funktion, um symbolische Informationen in einer SYMBOL _ INFO-Struktur für ein bestimmtes Modul und einen Symbolnamen abzurufen. Wenn verzögertes Laden von Symbolen festgelegt ist, versucht SymFromName, die Symboldatei für ein Modul zu laden, wenn es noch nicht geladen wurde. Um einen Modulnamen zusammen mit einem Symbolnamen anzugeben, verwenden Sie die Syntax Module! SymName. Das Zeichen "!" begrenzt den Modulnamen vom Symbolnamen. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Name.

Abrufen von Zeilennummern nach Adresse

Verwenden Sie die SymGetLineFromAddr64-Funktion, um den Quellcodespeicherort für eine bestimmte Adresse abzurufen. Diese Funktion füllt eine IMAGEHLP _ LINE64-Struktur aus, die den Quelldateinamen und den Speicherort der Zeilennummer enthält, auf die von der angegebenen Adresse verwiesen wird. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Adresse.

Abrufen von Zeilennummern nach Symbolname

Verwenden Sie die SymGetLineFromName64-Funktion, um den Quellcodespeicherort für einen bestimmten Symbolnamen abzurufen. Diese Funktion ähnelt SymGetSymFromName64,ruft jedoch eine IMAGEHLP _ LINE64-Struktur ab. Um SymGetLineFromAddr64 oder SymGetLineFromName64 zu verwenden, müssen Sie die Load Lines-Option (SYMOPT LOAD LINES) mithilfe der _ _ SymSetOptions-Funktion festlegen. Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Name.