Menginisialisasi Penangan Simbol
Kodenya berikut menunjukkan cara menginisialisasi pengelola simbol. Fungsi SymSetOptions menunda pemrosesan 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 bukanlah proses yang memanggil SymInitialize, kode memberikan ID proses sebagai parameter pertama dari SymInitialize.
Menetapkan NULL sebagai parameter kedua dari SymInitialize menunjukkan bahwa pengelola simbol harus menggunakan jalur pencarian bawaan 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;
}