Funzione SymGetSymFromName (dbghelp.h)
Individua un simbolo per il nome specificato.
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 |