Compartilhar via


Função SymEnumSymbolsW (dbghelp.h)

Enumera todos os símbolos em um processo.

Sintaxe

BOOL IMAGEAPI SymEnumSymbolsW(
  [in]           HANDLE                          hProcess,
  [in]           ULONG64                         BaseOfDll,
  [in, optional] PCWSTR                          Mask,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
  [in, optional] PVOID                           UserContext
);

Parâmetros

[in] hProcess

Um identificador para um processo. Esse identificador deve ter sido passado anteriormente para a função SymInitialize.

[in] BaseOfDll

O endereço base do módulo. Se esse valor for zero e Mask contiver um ponto de exclamação (!), a função examinará os módulos. Se esse valor for zero e Máscara não contiver um ponto de exclamação, a função usará o escopo estabelecido pela função SymSetContext .

[in, optional] Mask

Uma cadeia de caracteres curinga que indica os nomes dos símbolos a serem enumerados. Opcionalmente, o texto pode conter os caracteres curinga, "*" e "?".

Para especificar um módulo ou conjunto específico de módulos, inicie o texto com uma cadeia de caracteres curinga especificando o módulo, seguido por um ponto de exclamação. Ao especificar um módulo, BaseOfDll é ignorado.

Valor Significado
foo
Se BaseOfDll não for zero, SymEnumSymbols procurará um símbolo global chamado "foo".

Se BaseOfDll for zero, SymEnumSymbols procurará um símbolo local chamado "foo" dentro do escopo estabelecido pela chamada mais recente para a função SymSetContext .

foo?
Se BaseOfDll não for zero, SymEnumSymbols procurará um símbolo global que comece com "foo" e contenha um caractere extra depois, como "tolo" e "pé".

Se BaseOfDll for zero, SymEnumSymbols procurará um símbolo que comece com "foo" e contenha um caractere extra depois, como "tolo" e "pé". A pesquisa estaria dentro do escopo estabelecido pela chamada mais recente para a função SymSetContext .

foo*!bar
SymEnumSymbols procurará em cada módulo carregado que começa com o texto "foo" para um símbolo chamado "barra". Ele poderia encontrar correspondências como estas, "foot!bar", "footlocker!bar" e "fool!bar".
*!*
SymEnumSymbols enumerará todos os símbolos em cada módulo carregado.

[in] EnumSymbolsCallback

Um SymEnumSymbolsProc função de retorno de chamada que recebe as informações de símbolo.

[in, optional] UserContext

Um valor definido pelo usuário que é passado para a função de retorno de chamada ou NULL. Esse parâmetro normalmente é usado por um aplicativo para passar um ponteiro para uma estrutura de dados que fornece contexto para a função de retorno de chamada.

Valor de retorno

Se a função for bem-sucedida, o valor retornado será VERDADEIRO.

Se a função falhar, o valor retornado será false. Para recuperar informações de erro estendidas, chame GetLastError.

Observações

Todas as funções DbgHelp, como esta, são threaded simples. Portanto, chamadas de mais de um thread para essa função provavelmente resultarão em comportamento inesperado ou corrupção de memória. Para evitar isso, você deve sincronizar todas as chamadas simultâneas de mais de um thread para essa função.

Para chamar a versão Unicode dessa função, defina DBGHELP_TRANSLATE_TCHAR.

Exemplos

Para obter um exemplo, consulte Enumerando símbolos.

Nota

O cabeçalho dbghelp.h define SymEnumSymbols como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
da Plataforma de Destino Windows
cabeçalho dbghelp.h
biblioteca Dbghelp.lib
de DLL Dbghelp.dll
redistribuível DbgHelp.dll 5.1 ou posterior

Consulte também

do DbgHelp Functions

SymEnumSymbolsProc