Initialisieren des Symbolhandlers

Der folgende Code veranschaulicht, wie der Symbolhandler initialisiert wird. Die SymSetOptions-Funktion überlädt das Laden von Symbolen, bis Symbolinformationen angefordert werden. Der Code lädt die Symbole für jedes Modul im angegebenen Prozess, indem der Wert TRUE für den bInvade-Parameter der SymInitialize-Funktion übergeben wird. (Diese Funktion ruft die SymLoadModule64-Funktion für jedes Modul auf, das der Prozess seinem Adressraum zugeordnet hat.)

Wenn der angegebene Prozess nicht der Prozess ist, der SymInitializeaufgerufen hat, übergibt der Code einen Prozessbezeichner als ersten Parameter von SymInitialize.

Die Angabe von NULL als zweiter Parameter von SymInitialize gibt an, dass der Symbolhandler den Standardsuchpfad verwenden soll, um Symboldateien zu suchen. Ausführliche Informationen dazu, wie der Symbolhandler Symboldateien sucht oder wie eine Anwendung einen Symbolsuchpfad angeben kann, finden Sie unter Symbolpfade.

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;
}