Fonction SymLoadModule (dbghelp.h)
Charge la table de symboles.
Cette fonction a été remplacée par la fonction SymLoadModuleEx .
Syntaxe
DWORD IMAGEAPI SymLoadModule(
[in] HANDLE hProcess,
[in, optional] HANDLE hFile,
[in, optional] PCSTR ImageName,
[in, optional] PCSTR ModuleName,
[in] DWORD BaseOfDll,
[in] DWORD SizeOfDll
);
Paramètres
[in] hProcess
Handle du processus. Ce handle doit avoir été précédemment passé à la fonction SymInitialize .
[in, optional] hFile
Handle du fichier pour l’image exécutable. Cet argument est principalement utilisé par les débogueurs, où le débogueur transmet le handle de fichier obtenu à partir d’un événement de débogage. La valeur NULL indique que hFile n’est pas utilisé.
[in, optional] ImageName
Nom de l’image exécutable. Ce nom peut contenir un chemin d’accès partiel, un chemin d’accès complet ou aucun chemin du tout. Si le fichier ne peut pas être localisé par le nom fourni, le chemin de recherche de symbole est utilisé.
[in, optional] ModuleName
Nom de raccourci pour le module. Si la valeur du pointeur est NULL, la bibliothèque crée un nom à l’aide du nom de base du fichier de symboles.
[in] BaseOfDll
Adresse de chargement du module. Si la valeur est égale à zéro, la bibliothèque obtient l’adresse de chargement à partir du fichier de symboles. L’adresse de charge contenue dans le fichier de symboles n’est pas nécessairement l’adresse de chargement réelle. Les débogueurs et autres applications ayant une adresse de charge réelle doivent utiliser l’adresse de charge réelle lors de l’appel de cette fonction.
Si l’image est un fichier .pdb, ce paramètre ne peut pas être égal à zéro.
[in] SizeOfDll
Taille du module, en octets. Si la valeur est zéro, la bibliothèque obtient la taille à partir du fichier de symboles. La taille contenue dans le fichier de symboles n’est pas nécessairement la taille réelle. Les débogueurs et autres applications ayant une taille réelle doivent utiliser la taille réelle lors de l’appel de cette fonction.
Si l’image est un fichier .pdb, ce paramètre ne peut pas être égal à zéro.
Valeur retournée
Si la fonction réussit, la valeur de retour est l’adresse de base du module chargé.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour récupérer des informations d’erreur étendues, appelez GetLastError.
Si le module est déjà chargé, la valeur de retour est zéro et GetLastError retourne ERROR_SUCCESS.
Notes
Le gestionnaire de symboles crée une entrée pour le module et si l’option de chargement différé des symboles est désactivée, une tentative de chargement des symboles est effectuée. Si le chargement différé des symboles est activé, le module est marqué comme différé et les symboles ne sont pas chargés tant qu’une référence à un symbole n’est pas faite dans le module.
Pour décharger la table de symboles, utilisez la fonction SymUnloadModule64 .
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 SymLoadModule . Pour plus d’informations, consultez Mise à jour de la prise en charge de la plateforme. SymLoadModule est défini comme suit dans DbgHelp.h.
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymLoadModule SymLoadModule64
#else
DWORD
IMAGEAPI
SymLoadModule(
__in HANDLE hProcess,
__in_opt HANDLE hFile,
__in_opt PCSTR ImageName,
__in_opt PCSTR ModuleName,
__in DWORD BaseOfDll,
__in DWORD SizeOfDll
);
#endif
Spécifications
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 |