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

В следующем коде показано, как инициализировать обработчик символов. Функция симсетоптионс откладывает загрузку символов до запроса символьной информации. Код загружает символы для каждого модуля в указанном процессе, передавая значение true для параметра бинваде функции симинитиализе . (Эта функция вызывает функцию SymLoadModule64 для каждого модуля, который процесс сопоставляет с адресным пространством.)

Если указанный процесс не является процессом, вызвавшим симинитиализе, код передает идентификатор процесса в качестве первого параметра симинитиализе.

Указание значения NULL в качестве второго параметра симинитиализе указывает, что обработчик символов должен использовать путь поиска по умолчанию для поиска файлов символов. Подробные сведения о том, как обработчик символов находит файлы символов или как приложение может указать путь поиска символов, см. в разделе пути к символам.

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