Compartilhar via


estrutura SYMBOL_INFO (dbghelp.h)

Contém informações de símbolo.

Sintaxe

typedef struct _SYMBOL_INFO {
  ULONG   SizeOfStruct;
  ULONG   TypeIndex;
  ULONG64 Reserved[2];
  ULONG   Index;
  ULONG   Size;
  ULONG64 ModBase;
  ULONG   Flags;
  ULONG64 Value;
  ULONG64 Address;
  ULONG   Register;
  ULONG   Scope;
  ULONG   Tag;
  ULONG   NameLen;
  ULONG   MaxNameLen;
  CHAR    Name[1];
} SYMBOL_INFO, *PSYMBOL_INFO;

Membros

SizeOfStruct

O tamanho da estrutura em bytes. Esse membro deve ser definido como sizeof(SYMBOL_INFO). Observe que o tamanho total dos dados é o SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR). O motivo para subtrair um é que o primeiro caractere no nome é contabilizado no tamanho da estrutura.

TypeIndex

Um valor exclusivo que identifica os dados de tipo que descrevem o símbolo. Esse valor não persiste entre as sessões.

Reserved[2]

Esse membro é reservado para uso do sistema.

Index

O valor exclusivo para o símbolo. Não há garantia de que o valor associado a um símbolo seja o mesmo sempre que você executar o processo.

Para símbolos PDB, o valor de índice de um símbolo não é gerado até que o símbolo seja enumerado ou recuperado por meio de uma pesquisa por nome ou endereço. Os valores de índice para todos os símbolos CodeView e COFF são gerados quando os símbolos são carregados.

Size

O tamanho do símbolo, em bytes (ou bits, se o símbolo for um membro bitfield).

Esse valor só será significativo se os símbolos do módulo forem de um arquivo pdb; caso contrário, esse valor normalmente é zero e deve ser ignorado.

ModBase

O endereço base do módulo que contém o símbolo.

Flags

Esse membro pode ser um ou mais dos valores a seguir.

Valor Significado
SYMFLAG_CLR_TOKEN
0x00040000
O símbolo é um token CLR.
SYMFLAG_CONSTANT
0x00000100
O símbolo é uma constante.
SYMFLAG_EXPORT
0x00000200
O símbolo é da tabela de exportação.
SYMFLAG_FORWARDER
0x00000400
O símbolo é um encaminhador.
SYMFLAG_FRAMEREL
0x00000020
Os deslocamentos são relativos ao quadro.
SYMFLAG_FUNCTION
0x00000800
O símbolo é uma função conhecida.
SYMFLAG_ILREL
0x00010000
O endereço do símbolo é um deslocamento relativo ao início do bloco de idioma intermediário. Isso se aplica somente ao código gerenciado.
SYMFLAG_LOCAL
0x00000080
O símbolo é uma variável local.
SYMFLAG_METADATA
0x00020000
O símbolo é metadados gerenciados.
SYMFLAG_PARAMETER
0x00000040
O símbolo é um parâmetro.
SYMFLAG_REGISTER
0x00000008
O símbolo é um registro. O membro Register é usado.
SYMFLAG_REGREL
0x00000010
Os deslocamentos são relativos ao registro.
SYMFLAG_SLOT
0x00008000
O símbolo é um slot de código gerenciado.
SYMFLAG_THUNK
0x00002000
O símbolo é um thunk.
SYMFLAG_TLSREL
0x00004000
O símbolo é um deslocamento para a área de dados TLS.
SYMFLAG_VALUEPRESENT
0x00000001
O membro Value é usado.
SYMFLAG_VIRTUAL
0x00001000
O símbolo é um símbolo virtual criado pela função SymAddSymbol .

Value

O valor de uma constante.

Address

O endereço virtual do início do símbolo.

Register

O registro.

Scope

O escopo DIA. Para obter mais informações, consulte o SDK de Acesso à Interface de Depuração na documentação do Visual Studio. (Esse recurso pode não estar disponível em alguns idiomas

e países.)

Tag

A classificação do PDB. Esses valores são definidos em Dbghelp.h no tipo de enumeração SymTagEnum .

NameLen

O comprimento do nome, em caracteres, não incluindo o caractere de terminação nula.

MaxNameLen

O tamanho do buffer Nome , em caracteres. Se esse membro for 0, o membro Name não será usado.

Name[1]

O nome do símbolo. O nome poderá ser não corrigido se a opção SYMOPT_UNDNAME for usada com a função SymSetOptions .

Requisitos

Requisito Valor
Cabeçalho dbghelp.h
Redistribuível DbgHelp.dll 5.1 ou posterior

Confira também

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName