Initialisieren des Symbolhandlers

Der folgende Code veranschaulicht, wie der Symbolhandler initialisiert wird. Die Funktion SymSetOptions verzögert das Laden des Symbols, bis Symbolinformationen angefordert werden. Der Code lädt die Symbole für jedes Modul im angegebenen Prozess, indem ein Wert von 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 in seinen Adressraum zugeordnet ist.)

Wenn der angegebene Prozess nicht der Prozess ist, der symInitialize genannt wird, übergibt der Code einen Prozessbezeichner als ersten Parameter von SymInitialize.

Wenn Sie NULL als zweiten Parameter von SymInitialize angeben, wird angegeben, dass der Symbolhandler den Standardmäßigen Suchpfad zum Suchen von Symboldateien verwenden soll. Ausführliche Informationen dazu, wie der Symbolhandler Symboldateien findet oder wie eine Anwendung einen Symbolsuchepfad 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;
}