Funzione SymGetSymFromName (dbghelp.h)

Individua un simbolo per il nome specificato.

Nota Questa funzione viene fornita solo per la compatibilità. Le applicazioni devono usare SymFromName.
 

Sintassi

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

Parametri

[in] hProcess

Handle per il processo passato originariamente alla funzione SymInitialize .

[in] Name

Nome del simbolo per il quale deve essere individuato un simbolo.

[in, out] Symbol

Puntatore a una struttura IMAGEHLP_SYMBOL64 .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Per recuperare informazioni sull'errore estese, chiamare GetLastError.

Commenti

La funzione SymGetSymFromName64 viene utilizzata per individuare un simbolo per un nome specificato. Il nome può contenere un prefisso del modulo che isola la ricerca dei simboli nella tabella dei simboli di un singolo modulo.

Il prefisso del modulo è sotto forma di "module!". Il carattere "!" è il delimitatore tra il nome del modulo e il nome del simbolo. Se non è presente alcun prefisso del modulo, la ricerca viene eseguita nella tabella dei simboli di ogni modulo in modo lineare, a partire dal primo modulo caricato.

L'uso del prefisso del modulo è preferibile per due motivi. Prima di tutto, la ricerca dei simboli viene eseguita molto più velocemente. In secondo luogo, quando il caricamento posticipato dei simboli è attivato, la ricerca fa sì che i simboli vengano caricati per ogni modulo in cui viene eseguita la ricerca. Quando viene trovato il simbolo, le informazioni sul simbolo vengono copiate nel buffer dei simboli fornito dal chiamante. Il chiamante deve allocare correttamente il buffer Symbol e compilare i parametri necessari nella struttura IMAGEHLP_SYMBOL64 prima di chiamare SymGetSymFromName64.

Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Di conseguenza, le chiamate da più thread a questa funzione genereranno un comportamento imprevisto o un danneggiamento della memoria. Per evitare questo problema, è necessario sincronizzare tutte le chiamate simultanee da più thread a questa funzione.

Questa funzione sostituisce la funzione SymGetSymFromName . Per altre informazioni, vedere Aggiornamento del supporto della piattaforma. SymGetSymFromName è definito come segue in Dbghelp.h.

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

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione dbghelp.h
Libreria Dbghelp.lib
DLL Dbghelp.dll
Componente ridistribuibile DbgHelp.dll 5.1 o versione successiva

Vedi anche

Funzioni DbgHelp

IMAGEHLP_SYMBOL64

SymFromName

SymInitialize