Aracılığıyla paylaş


Sembol Modülü Yükleme

Bir uygulama, fInvadeProcess parametresi TRUEolarak ayarlanmış SymInitialize fonksiyonunu çağırmazsa, modül için semboller gerektiğinde yüklenmelidir. bir sembol modülünü isteğe bağlı olarak yüklemek için uygulama, bir modül adının tam yolu ile SymLoadModuleEx işlevini çağırabilir. Modül yüklendiğinde, sembol işleyicisi SymSetOptions işlevini kullanarak ayarlanan seçeneklere bağlı olarak simgeleri hemen yükler veya yükü erteler.

Aşağıdaki kod bir sembol modülü yükler. Sembol işleyicisini Sembol İşleyicisini Başlatmaiçindeki kodu kullanarak başlattığınızı varsaydığını unutmayın.

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);
}

szImageName hata ayıklama bilgileri (.exe, .dll, .drv, .sys, .scr, .cpl, .com) içeren herhangi bir yürütülebilir modülün yolu olabileceğini unutmayın. Ayrıca dwBaseAddr yüklenecek sembol modülünün temel adresidir. Bu değer 0 ise, simge işleyicisi belirtilen sembol modülünden temel adresi alır.

Simge Modülünü Kaldırma