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;
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk