Menginisialisasi Penangan Simbol

Kode berikut menunjukkan cara menginisialisasi penangan simbol. Fungsi SymSetOptions menukar pemuatan simbol hingga informasi simbol diminta. Kode memuat simbol untuk setiap modul dalam proses yang ditentukan dengan meneruskan nilai TRUE untuk parameter bInvade dari fungsi SymInitialize. (Fungsi ini memanggil Fungsi SymLoadModule64 untuk setiap modul yang telah dipetakan ke ruang alamatnya.)

Jika proses yang ditentukan bukan proses yang disebut SymInitialize, kode melewati pengidentifikasi proses sebagai parameter pertama SymInitialize.

Menentukan NULL sebagai parameter kedua SymInitialize menunjukkan bahwa penangan simbol harus menggunakan jalur pencarian default untuk menemukan file simbol. Untuk informasi terperinci tentang bagaimana penangan simbol menemukan file simbol atau bagaimana aplikasi dapat menentukan jalur pencarian simbol, lihat Jalur Simbol.

DWORD  error;
HANDLE hCurrentProcess;
HANDLE hProcess;

SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS);

hCurrentProcess = GetCurrentProcess();

if (!DuplicateHandle(hCurrentProcess, hCurrentProcess, hCurrentProcess, &hProcess, 0, FALSE, DUPLICATE_SAME_ACCESS))
{
    // DuplicateHandle failed
    error = GetLastError();
    printf("DuplicateHandle returned error : %d\n", error);
    return FALSE;
}

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