Initialisation du gestionnaire de symboles

Le code suivant montre comment initialiser le gestionnaire de symboles. La fonction SymSetOptions diffère le chargement de symboles jusqu’à ce que les informations de symbole soient demandées. Le code charge les symboles pour chaque module dans le processus spécifié en passant la valeur true pour le paramètre bInvade de la fonction syminitialize . (Cette fonction appelle la fonction SymLoadModule64 pour chaque module que le processus a mappé dans son espace d’adressage.)

Si le processus spécifié n’est pas le processus qui a appelé syminitialize, le code passe un identificateur de processus comme premier paramètre de syminitialize.

La spécification de null comme deuxième paramètre de syminitialize indique que le gestionnaire de symboles doit utiliser le chemin de recherche par défaut pour localiser les fichiers de symboles. Pour plus d’informations sur la façon dont le gestionnaire de symboles localise les fichiers de symboles ou sur la façon dont une application peut spécifier un chemin de recherche de symboles, consultez chemins d'accès aux symboles.

DWORD  error;
HANDLE hProcess;

SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS);

hProcess = GetCurrentProcess();

if (!SymInitialize(hProcess, NULL, TRUE))
{
    // SymInitialize failed
    error = GetLastError();
    printf("SymInitialize returned error : %d\n", error);
    return FALSE;
}