Inicializando o manipulador de símbolo

O código a seguir demonstra como inicializar o manipulador de símbolo. A função SymSetOptions adia o carregamento de símbolos até que as informações de símbolo sejam solicitadas. O código carrega os símbolos para cada módulo no processo especificado, passando um valor de true para o parâmetro BInvade da função SymInitialize . (Essa função chama a função SymLoadModule64 para cada módulo que o processo mapeou em seu espaço de endereço.)

Se o processo especificado não for o processo que chamou SymInitialize, o código passará um identificador de processo como o primeiro parâmetro de SymInitialize.

A especificação de NULL como o segundo parâmetro de SymInitialize indica que o manipulador de símbolo deve usar o caminho de pesquisa padrão para localizar arquivos de símbolo. Para obter informações detalhadas sobre como o manipulador de símbolo localiza arquivos de símbolo ou como um aplicativo pode especificar um caminho de pesquisa de símbolo, consulte caminhos de símbolo.

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