Share via


SymGetSymFromName-Funktion (dbghelp.h)

Sucht ein Symbol für den angegebenen Namen.

Hinweis Diese Funktion wird nur aus Kompatibilitätsgründen bereitgestellt. Anwendungen sollten SymFromName verwenden.
 

Syntax

BOOL IMAGEAPI SymGetSymFromName(
  [in]      HANDLE           hProcess,
  [in]      PCSTR            Name,
  [in, out] PIMAGEHLP_SYMBOL Symbol
);

Parameter

[in] hProcess

Ein Handle für den Prozess, der ursprünglich an die SymInitialize-Funktion übergeben wurde.

[in] Name

Der Symbolname, für den ein Symbol gefunden werden soll.

[in, out] Symbol

Ein Zeiger auf eine IMAGEHLP_SYMBOL64-Struktur .

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

Die SymGetSymFromName64-Funktion wird verwendet, um ein Symbol für einen angegebenen Namen zu suchen. Der Name kann ein Modulpräfix enthalten, das die Symbolsuche in der Symboltabelle eines einzelnen Moduls isoliert.

Das Modulpräfix hat die Form "module!". Das Zeichen "!" ist das Trennzeichen zwischen dem Modulnamen und dem Symbolnamen. Wenn kein Modulpräfix vorhanden ist, wird die Suche für die Symboltabelle jedes Moduls linear ausgeführt, beginnend mit dem ersten modul, das geladen wird.

Die Verwendung des Modulpräfixes ist aus zwei Gründen vorzuziehen. Erstens erfolgt die Symbolsuche viel schneller. Zweitens: Wenn das verzögerte Laden von Symbolen aktiviert ist, bewirkt die Suche, dass Symbole für jedes durchsuchte Modul geladen werden. Wenn das Symbol gefunden wird, werden die Symbolinformationen in den vom Aufrufer bereitgestellten Symbolpuffer kopiert. Der Aufrufer muss den Symbolpuffer ordnungsgemäß zuordnen und die erforderlichen Parameter in der IMAGEHLP_SYMBOL64-Struktur eingeben, bevor SymGetSymFromName64 aufgerufen wird.

Alle DbgHelp-Funktionen, z. B. diese, sind singlethreaded. 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.

Diese Funktion ersetzt die SymGetSymFromName-Funktion . Weitere Informationen finden Sie unter Aktualisierte Plattformunterstützung. SymGetSymFromName ist in Dbghelp.h wie folgt definiert.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetSymFromName SymGetSymFromName64
#else
BOOL
IMAGEAPI
SymGetSymFromName(
    __in HANDLE hProcess,
    __in PCSTR Name,
    __inout PIMAGEHLP_SYMBOL Symbol
    );
#endif

Anforderungen

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

Weitere Informationen

DbgHelp-Funktionen

IMAGEHLP_SYMBOL64

SymFromName

SymInitialize