Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O código a seguir demonstra como inicializar o manipulador de símbolos. A função SymSetOptions adia o carregamento do símbolo até que as informações do símbolo sejam solicitadas. O código carrega os símbolos para cada módulo no processo especificado, passando o valor TRUE para o parâmetro bInvade da função SymInitialize. (Esta função chama a função SymLoadModule64 para cada módulo que o processo mapeou no seu espaço de endereço.)
Se o processo especificado não for o processo chamado SymInitialize, o código passa um identificador de processo como o primeiro parâmetro do SymInitialize.
Especificar NULL como o segundo parâmetro de SymInitialize indica que o manipulador de símbolos 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ímbolos localiza arquivos de símbolos ou como um aplicativo pode especificar um caminho de pesquisa de símbolos, consulte Caminhos de símbolos.
DWORD error;
HANDLE hCurrentProcess;
HANDLE hProcess;
SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS);
hCurrentProcess = GetCurrentProcess();
if (!DuplicateHandle(hCurrentProcess, hCurrentProcess, hCurrentProcess, &hProcess, 0, FALSE, DUPLICATE_SAME_ACCESS))
{
// DuplicateHandle failed
error = GetLastError();
printf("DuplicateHandle returned error : %d\n", error);
return FALSE;
}
if (!SymInitialize(hProcess, NULL, TRUE))
{
// SymInitialize failed
error = GetLastError();
printf("SymInitialize returned error : %d\n", error);
return FALSE;
}