初始化符號處理常式

下列程式碼示範如何初始化符號處理常式。 SymSetOptions 函式會延遲符號載入,直到要求符號資訊為止。 程式碼會針對SymInitialize函式的bInvade參數傳遞TRUE值,以載入指定進程中每個模組的符號。 (此函式會針對進程對應至其位址空間的每個模組呼叫 SymLoadModule64 函式。)

如果指定的進程不是稱為 SymInitialize的進程,程式碼會將進程識別碼當做 SymInitialize的第一個參數傳遞。

Null 指定為 SymInitialize 的第二個參數,表示符號處理常式應該使用預設搜尋路徑來尋找符號檔。 如需符號處理常式如何尋找符號檔或應用程式如何指定符號搜尋路徑的詳細資訊,請參閱 符號路徑

DWORD  error;
HANDLE hProcess;

SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS);

hProcess = GetCurrentProcess();

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