Compartilhar via


Função SymGetSymFromName (dbghelp.h)

Localiza um símbolo para o nome especificado.

Nota Essa função é fornecida apenas para compatibilidade. Os aplicativos devem usar SymFromName.
 

Sintaxe

BOOL IMAGEAPI SymGetSymFromName(
  [in]      HANDLE           hProcess,
  [in]      PCSTR            Name,
  [in, out] PIMAGEHLP_SYMBOL Symbol
);

Parâmetros

[in] hProcess

Um identificador para o processo que foi originalmente passado para a função SymInitialize .

[in] Name

O nome do símbolo para o qual um símbolo deve ser localizado.

[in, out] Symbol

Um ponteiro para uma estrutura IMAGEHLP_SYMBOL64 .

Retornar valor

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

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

Comentários

A função SymGetSymFromName64 é usada para localizar um símbolo para um nome especificado. O nome pode conter um prefixo de módulo que isola a pesquisa de símbolos na tabela de símbolos de um único módulo.

O prefixo do módulo está na forma de "module!". O caractere "!" é o delimitador entre o nome do módulo e o nome do símbolo. Se não houver nenhum prefixo de módulo, a pesquisa será executada na tabela de símbolos de cada módulo de maneira linear, começando com o primeiro módulo carregado.

O uso do prefixo do módulo é preferível por dois motivos. Primeiro, a pesquisa de símbolos ocorre muito mais rapidamente. Segundo, quando o carregamento de símbolo adiado é ativado, a pesquisa faz com que os símbolos sejam carregados para cada módulo pesquisado. Quando o símbolo é encontrado, as informações do símbolo são copiadas para o buffer símbolo fornecido pelo chamador. O chamador deve alocar o buffer de símbolo corretamente e preencher os parâmetros necessários na estrutura IMAGEHLP_SYMBOL64 antes de chamar SymGetSymFromName64.

Todas as funções DbgHelp, como esta, são threaded único. 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.

Essa função substitui a função SymGetSymFromName . Para obter mais informações, consulte Suporte de plataforma atualizado. SymGetSymFromName é definido da seguinte maneira em Dbghelp.h.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetSymFromName SymGetSymFromName64
#else
BOOL
IMAGEAPI
SymGetSymFromName(
    __in HANDLE hProcess,
    __in PCSTR Name,
    __inout PIMAGEHLP_SYMBOL Symbol
    );
#endif

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho dbghelp.h
Biblioteca Dbghelp.lib
DLL Dbghelp.dll
Redistribuível DbgHelp.dll 5.1 ou posterior

Confira também

Funções DbgHelp

IMAGEHLP_SYMBOL64

SymFromName

SymInitialize