Share via


SymEnumSymbols-Funktion (dbghelp.h)

Listet alle Symbole in einem Prozess auf.

Syntax

BOOL IMAGEAPI SymEnumSymbols(
  [in]           HANDLE                         hProcess,
  [in]           ULONG64                        BaseOfDll,
  [in, optional] PCSTR                          Mask,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
  [in, optional] PVOID                          UserContext
);

Parameter

[in] hProcess

Ein Handle für einen Prozess. Dieses Handle muss zuvor an die SymInitialize-Funktion übergeben worden sein.

[in] BaseOfDll

Die Basisadresse des Moduls. Wenn dieser Wert 0 ist und Mask ein Ausrufezeichen (!) enthält, sucht die Funktion moduleübergreifend. Wenn dieser Wert 0 ist und Mask kein Ausrufezeichen enthält, verwendet die Funktion den bereich, der von der SymSetContext-Funktion eingerichtet wurde.

[in, optional] Mask

Eine Feldhalterzeichenfolge, die die Namen der aufzuzählenden Symbole angibt. Der Text kann optional die Platzhalter "*" und "?"enthalten.

Um ein bestimmtes Modul oder einen bestimmten Satz von Modulen anzugeben, beginnen Sie den Text mit einer Platzhalterzeichenfolge, die das Modul angibt, gefolgt von einem Ausrufezeichen. Beim Angeben eines Moduls wird BaseOfDll ignoriert.

Wert Bedeutung
Foo
Wenn BaseOfDll nicht 0 ist, sucht SymEnumSymbols nach einem globalen Symbol namens "foo".

Wenn BaseOfDll null ist, sucht SymEnumSymbols nach einem lokalen Symbol namens "foo" innerhalb des Bereichs, der durch den letzten Aufruf der SymSetContext-Funktion eingerichtet wurde.

Foo?
Wenn BaseOfDll nicht 0 ist, sucht SymEnumSymbols nach einem globalen Symbol, das mit "foo" beginnt und danach ein zusätzliches Zeichen enthält, z. B. "fool" und "foot".

Wenn BaseOfDll null ist, sucht SymEnumSymbols nach einem Symbol, das mit "foo" beginnt und danach ein zusätzliches Zeichen enthält, z. B. "fool" und "foot". Die Suche würde sich innerhalb des Bereichs befinden, der durch den letzten Aufruf der SymSetContext-Funktion festgelegt wurde.

foo*!bar
SymEnumSymbols sucht in jedem geladenen Modul, das mit dem Text "foo" beginnt, nach einem Symbol namens "bar". Es könnte Übereinstimmungen wie diese finden, "foot!bar", "footlocker!bar" und "fool!bar".
*!*
SymEnumSymbols listet jedes Symbol in jedem geladenen Modul auf.

[in] EnumSymbolsCallback

Eine SymEnumSymbolsProc-Rückruffunktion , die die Symbolinformationen empfängt.

[in, optional] UserContext

Ein benutzerdefinierter Wert, der an die Rückruffunktion ( NULL) übergeben wird. Dieser Parameter wird in der Regel von einer Anwendung verwendet, um einen Zeiger an eine Datenstruktur zu übergeben, die Kontext für die Rückruffunktion bereitstellt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.

Hinweise

Alle DbgHelp-Funktionen, z. B. diese, sind single threaded. Daher führen an diese Funktion gerichtete Aufrufe mehrerer Threads wahrscheinlich zu unerwartetem Verhalten oder einer Beschädigung des Speichers. Um dies zu vermeiden, müssen Sie alle an diese Funktion gerichteten gleichzeitigen Aufrufe mehrerer Threads synchronisieren.

Um die Unicode-Version dieser Funktion aufzurufen, definieren Sie DBGHELP_TRANSLATE_TCHAR.

Beispiele

Ein Beispiel finden Sie unter Aufzählen von Symbolen.

Anforderungen

   
Zielplattform Windows
Kopfzeile dbghelp.h
Bibliothek Dbghelp.lib
DLL Dbghelp.dll
Verteilbare Komponente DbgHelp.dll 5.1 oder höher

Weitere Informationen

DbgHelp-Funktionen

SymEnumSymbolsProc