Инициализация обработчика символов

В следующем коде показано, как инициализировать обработчик символов. Функция SymSetOptions откладывает загрузку символов до запроса сведений о символах. Код загружает символы для каждого модуля в указанном процессе, передав значение TRUE для параметра bInvade функции SymInitialize . (Эта функция вызывает функцию 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;
}