Condividi tramite


SYMBOL_INFO struttura (dbghelp.h)

Contiene informazioni sui simboli.

Sintassi

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;

Members

SizeOfStruct

Dimensioni della struttura, in byte. Questo membro deve essere impostato su sizeof(SYMBOL_INFO). Si noti che la dimensione totale dei dati è .SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR) Il motivo per sottraerne uno è che il primo carattere nel nome è tenuto conto delle dimensioni della struttura.

TypeIndex

Valore univoco che identifica i dati di tipo che descrivono il simbolo. Questo valore non persiste tra le sessioni.

Reserved[2]

Questo membro è riservato per l'uso del sistema.

Index

Valore univoco per il simbolo. Il valore associato a un simbolo non è garantito essere lo stesso ogni volta che si esegue il processo.

Per i simboli PDB, il valore di indice per un simbolo non viene generato finché il simbolo non viene enumerato o recuperato tramite una ricerca per nome o indirizzo. I valori di indice per tutti i simboli CodeView e COFF vengono generati quando vengono caricati i simboli.

Size

Dimensione del simbolo, in byte (o bit, se il simbolo è un membro del campo di bit).

Questo valore è significativo solo se i simboli del modulo provengono da un file pdb; in caso contrario, questo valore è in genere zero e deve essere ignorato.

ModBase

Indirizzo di base del modulo contenente il simbolo.

Flags

Questo membro può essere uno o più dei valori seguenti.

Valore Significato
SYMFLAG_CLR_TOKEN
0x00040000
Il simbolo è un token CLR.
SYMFLAG_CONSTANT
0x00000100
Il simbolo è una costante.
SYMFLAG_EXPORT
0x00000200
Il simbolo proviene dalla tabella di esportazione.
SYMFLAG_FORWARDER
0x00000400
Il simbolo è un inoltro.
SYMFLAG_FRAMEREL
0x00000020
Gli offset sono relativi al frame.
SYMFLAG_FUNCTION
0x00000800
Il simbolo è una funzione nota.
SYMFLAG_ILREL
0x00010000
L'indirizzo del simbolo è un offset relativo all'inizio del blocco di linguaggio intermedio. Questo vale solo per il codice gestito.
SYMFLAG_LOCAL
0x00000080
Il simbolo è una variabile locale.
SYMFLAG_METADATA
0x00020000
Il simbolo è metadati gestiti.
SYMFLAG_PARAMETER
0x00000040
Il simbolo è un parametro.
SYMFLAG_REGISTER
0x00000008
Il simbolo è un registro. Viene usato il membro Register .
SYMFLAG_REGREL
0x00000010
Gli offset sono relativi al registro.
SYMFLAG_SLOT
0x00008000
Il simbolo è uno slot di codice gestito.
SYMFLAG_THUNK
0x00002000
Il simbolo è un thunk.
SYMFLAG_TLSREL
0x00004000
Il simbolo è un offset nell'area dati TLS.
SYMFLAG_VALUEPRESENT
0x00000001
Viene usato il membro Value .
SYMFLAG_VIRTUAL
0x00001000
Il simbolo è un simbolo virtuale creato dalla funzione SymAddSymbol .

Value

Valore di una costante.

Address

Indirizzo virtuale dell'inizio del simbolo.

Register

Registro.

Scope

Ambito DIA. Per altre informazioni, vedere Debug Interface Access SDK nella documentazione di Visual Studio. Questa risorsa potrebbe non essere disponibile in alcune lingue

e paesi.)

Tag

Classificazione PDB. Questi valori sono definiti in Dbghelp.h nel tipo di enumerazione SymTagEnum .

NameLen

Lunghezza del nome, in caratteri, non incluso il carattere null-terminazione.

MaxNameLen

Dimensioni del buffer Name , in caratteri. Se questo membro è 0, il membro Name non viene usato.

Name[1]

Nome del simbolo. Il nome può essere nondecorato se l'opzione SYMOPT_UNDNAME viene usata con la funzione SymSetOptions .

Requisiti

Requisito Valore
Intestazione dbghelp.h
Componente ridistribuibile DbgHelp.dll 5.1 o versioni successive

Vedi anche

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName