Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika aplikasi tidak memanggil fungsi SymInitialize dengan parameter fInvadeProcess diatur ke TRUE, itu harus memuat simbol untuk modul ketika diperlukan. Untuk memuat modul simbol sesuai permintaan, aplikasi dapat memanggil fungsiSymLoadModuleEx dengan jalur lengkap ke nama modul. Ketika modul dimuat, handler simbol akan segera memuat simbol atau menunda beban, tergantung pada opsi yang diatur menggunakan fungsi SymSetOptions.
Kode berikut memuat modul simbol. Perhatikan bahwa ini mengasumsikan bahwa Anda telah melakukan inisialisasi penangan simbol menggunakan kode di Menginisialisasi Penangan Simbol.
TCHAR szImageName[MAX_PATH] = TEXT("foo.dll");
DWORD64 dwBaseAddr = 0;
if (SymLoadModuleEx(hProcess, // target process
NULL, // handle to image - not used
szImageName, // name of image file
NULL, // name of module - not required
dwBaseAddr, // base address - not required
0, // size of image - not required
NULL, // MODLOAD_DATA used for special cases
0)) // flags - not required
{
// SymLoadModuleEx returned success
}
else
{
// SymLoadModuleEx failed
DWORD error = GetLastError();
printf("SymLoadModuleEx returned error : %d\n", error);
}
Perhatikan bahwa szImageName dapat menjadi jalur ke modul yang dapat dieksekusi yang memiliki informasi debugging (.exe, .dll, .drv, .sys, .scr, .cpl, .com). Selain itu, dwBaseAddr adalah alamat dasar modul simbol yang akan dimuat. Jika nilai ini adalah 0, penangan simbol akan mendapatkan alamat dasar dari modul simbol yang ditentukan.
Topik terkait