Fonction SymGetSymFromName (dbghelp.h)
Recherche un symbole pour le nom spécifié.
Syntaxe
BOOL IMAGEAPI SymGetSymFromName(
[in] HANDLE hProcess,
[in] PCSTR Name,
[in, out] PIMAGEHLP_SYMBOL Symbol
);
Paramètres
[in] hProcess
Handle du processus qui a été passé à l’origine à la fonction SymInitialize .
[in] Name
Nom du symbole pour lequel un symbole doit être localisé.
[in, out] Symbol
Pointeur vers une structure IMAGEHLP_SYMBOL64 .
Valeur retournée
Si la fonction réussit, la valeur de retour est TRUE.
Si la fonction échoue, la valeur de retour est FALSE. Pour récupérer des informations d’erreur étendues, appelez GetLastError.
Remarques
La fonction SymGetSymFromName64 permet de localiser un symbole pour un nom spécifié. Le nom peut contenir un préfixe de module qui isole la recherche de symboles dans la table de symboles d’un module unique.
Le préfixe de module se présente sous la forme « module ! ». Le caractère « ! » est le délimiteur entre le nom du module et le nom du symbole. S’il n’existe aucun préfixe de module, la recherche est effectuée sur la table de symboles de chaque module de manière linéaire, en commençant par le premier module chargé.
L’utilisation du préfixe de module est préférable pour deux raisons. Tout d’abord, la recherche de symboles se produit beaucoup plus rapidement. Deuxièmement, lorsque le chargement différé des symboles est activé, la recherche entraîne le chargement des symboles pour chaque module recherché. Lorsque le symbole est trouvé, les informations de symbole sont copiées dans la mémoire tampon de symboles fournie par l’appelant. L’appelant doit allouer correctement la mémoire tampon symbol et renseigner les paramètres requis dans la structure IMAGEHLP_SYMBOL64 avant d’appeler SymGetSymFromName64.
Toutes les fonctions DbgHelp, telles que celle-ci, sont à thread unique. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement un comportement inattendu ou une altération de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.
Cette fonction remplace la fonction SymGetSymFromName . Pour plus d’informations, consultez Mise à jour de la prise en charge de la plateforme. SymGetSymFromName est défini comme suit dans 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
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | dbghelp.h |
Bibliothèque | Dbghelp.lib |
DLL | Dbghelp.dll |
Composant redistribuable | DbgHelp.dll 5.1 ou version ultérieure |