Compartir a través de


estructura de SYMBOL_INFO (dbghelp.h)

Contiene información de símbolos.

Sintaxis

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;

Miembros

SizeOfStruct

El tamaño de la estructura en bytes. Este miembro debe establecerse en sizeof(SYMBOL_INFO). Tenga en cuenta que el tamaño total de los datos es .SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR) El motivo para restar uno es que el primer carácter del nombre se tiene en cuenta en el tamaño de la estructura.

TypeIndex

Valor único que identifica los datos de tipo que describen el símbolo. Este valor no se conserva entre sesiones.

Reserved[2]

Este miembro está reservado para uso del sistema.

Index

Valor único del símbolo. No se garantiza que el valor asociado a un símbolo sea el mismo cada vez que ejecute el proceso.

En el caso de los símbolos de PDB, el valor de índice de un símbolo no se genera hasta que el símbolo se enumera o recupera a través de una búsqueda por nombre o dirección. Los valores de índice de todos los símbolos CodeView y COFF se generan cuando se cargan los símbolos.

Size

Tamaño del símbolo, en bytes (o bits, si el símbolo es un miembro de campo de bits).

Este valor solo es significativo si los símbolos del módulo proceden de un archivo pdb; de lo contrario, este valor suele ser cero y debe omitirse.

ModBase

Dirección base del módulo que contiene el símbolo.

Flags

Este miembro puede ser uno o varios de los valores siguientes.

Valor Significado
SYMFLAG_CLR_TOKEN
0x00040000
El símbolo es un token CLR.
SYMFLAG_CONSTANT
0x00000100
El símbolo es una constante.
SYMFLAG_EXPORT
0x00000200
El símbolo procede de la tabla de exportación.
SYMFLAG_FORWARDER
0x00000400
El símbolo es un reenviador.
SYMFLAG_FRAMEREL
0x00000020
Los desplazamientos son relativos al marco.
SYMFLAG_FUNCTION
0x00000800
El símbolo es una función conocida.
SYMFLAG_ILREL
0x00010000
La dirección del símbolo es un desplazamiento relativo al principio del bloque de lenguaje intermedio. Esto solo se aplica al código administrado.
SYMFLAG_LOCAL
0x00000080
El símbolo es una variable local.
SYMFLAG_METADATA
0x00020000
El símbolo es metadatos administrados.
SYMFLAG_PARAMETER
0x00000040
El símbolo es un parámetro.
SYMFLAG_REGISTER
0x00000008
El símbolo es un registro. Se usa el miembro Register .
SYMFLAG_REGREL
0x00000010
Los desplazamientos son relativos al registro.
SYMFLAG_SLOT
0x00008000
El símbolo es una ranura de código administrado.
SYMFLAG_THUNK
0x00002000
El símbolo es un thunk.
SYMFLAG_TLSREL
0x00004000
El símbolo es un desplazamiento en el área de datos TLS.
SYMFLAG_VALUEPRESENT
0x00000001
Se usa el miembro Value .
SYMFLAG_VIRTUAL
0x00001000
El símbolo es un símbolo virtual creado por la función SymAddSymbol .

Value

Valor de una constante.

Address

Dirección virtual del inicio del símbolo.

Register

Registro.

Scope

Ámbito DIA. Para obtener más información, consulte el SDK de Acceso a la interfaz de depuración en la documentación de Visual Studio. (Es posible que este recurso no esté disponible en algunos idiomas

y países).

Tag

Clasificación de PDB. Estos valores se definen en Dbghelp.h en el tipo de enumeración SymTagEnum .

NameLen

Longitud del nombre, en caracteres, no incluido el carácter de terminación null.

MaxNameLen

Tamaño del búfer Nombre , en caracteres. Si este miembro es 0, no se usa el miembro Name .

Name[1]

Nombre del símbolo. El nombre se puede descodificar si se usa la opción SYMOPT_UNDNAME con la función SymSetOptions .

Requisitos

Requisito Valor
Header dbghelp.h
Redistribuible DbgHelp.dll 5.1 o posterior

Consulte también

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName