Freigeben über


SYMBOL_INFO-Struktur (dbghelp.h)

Enthält Symbolinformationen.

Syntax

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;

Member

SizeOfStruct

Die Größe der Struktur in Bytes. Dieses Element muss auf sizeof(SYMBOL_INFO)festgelegt werden. Beachten Sie, dass die Gesamtgröße der Daten ist SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR). Der Grund, einen zu subtrahieren, ist, dass das erste Zeichen im Namen in der Größe der Struktur berücksichtigt wird.

TypeIndex

Ein eindeutiger Wert, der die Typdaten identifiziert, die das Symbol beschreiben. Dieser Wert wird zwischen Sitzungen nicht beibehalten.

Reserved[2]

Dieses Element ist für die Systemverwendung reserviert.

Index

Der eindeutige Wert für das Symbol. Es ist nicht garantiert, dass der einem Symbol zugeordnete Wert bei jeder Ausführung des Prozesses gleich ist.

Bei PDB-Symbolen wird der Indexwert für ein Symbol erst generiert, wenn das Symbol aufgelistet oder über eine Suche nach Name oder Adresse abgerufen wird. Die Indexwerte für alle CodeView- und COFF-Symbole werden generiert, wenn die Symbole geladen werden.

Size

Die Symbolgröße in Bytes (oder Bits, wenn das Symbol ein Bitfeldelement ist).

Dieser Wert ist nur sinnvoll, wenn die Modulsymbole aus einer pdb-Datei stammen. Andernfalls ist dieser Wert in der Regel 0 und sollte ignoriert werden.

ModBase

Die Basisadresse des Moduls, das das Symbol enthält.

Flags

Bei diesem Member kann es sich um einen oder mehrere der folgenden Werte handeln.

Wert Bedeutung
SYMFLAG_CLR_TOKEN
0x00040000
Das Symbol ist ein CLR-Token.
SYMFLAG_CONSTANT
0x00000100
Das Symbol ist eine Konstante.
SYMFLAG_EXPORT
0x00000200
Das Symbol stammt aus der Exporttabelle.
SYMFLAG_FORWARDER
0x00000400
Das Symbol ist eine Weiterleitung.
SYMFLAG_FRAMEREL
0x00000020
Offsets sind rahmenrelativ.
SYMFLAG_FUNCTION
0x00000800
Das Symbol ist eine bekannte Funktion.
SYMFLAG_ILREL
0x00010000
Die Symboladresse ist ein Offset relativ zum Anfang des zwischengeschalteten Sprachblocks. Dies gilt nur für verwalteten Code.
SYMFLAG_LOCAL
0x00000080
Das Symbol ist eine lokale Variable.
SYMFLAG_METADATA
0x00020000
Das Symbol sind verwaltete Metadaten.
SYMFLAG_PARAMETER
0x00000040
Das Symbol ist ein Parameter.
SYMFLAG_REGISTER
0x00000008
Das Symbol ist ein Register. Das Register-Element wird verwendet.
SYMFLAG_REGREL
0x00000010
Offsets sind registerrelativ.
SYMFLAG_SLOT
0x00008000
Das Symbol ist ein Slot mit verwaltetem Code.
SYMFLAG_THUNK
0x00002000
Das Symbol ist ein Thunk.
SYMFLAG_TLSREL
0x00004000
Das Symbol ist ein Offset in den TLS-Datenbereich.
SYMFLAG_VALUEPRESENT
0x00000001
Das Value-Element wird verwendet.
SYMFLAG_VIRTUAL
0x00001000
Das Symbol ist ein virtuelles Symbol, das von der SymAddSymbol-Funktion erstellt wird.

Value

Der Wert einer Konstante.

Address

Die virtuelle Adresse des Anfangs des Symbols.

Register

Das Register.

Scope

Der DIA-Bereich. Weitere Informationen finden Sie im Debug Interface Access SDK in der Visual Studio-Dokumentation. (Diese Ressource ist in einigen Sprachen möglicherweise nicht verfügbar.

und Länder.)

Tag

Die PDB-Klassifizierung. Diese Werte werden in Dbghelp.h im SymTagEnum-Enumerationstyp definiert.

NameLen

Die Länge des Namens in Zeichen, ohne das NULL-Endzeichen.

MaxNameLen

Die Größe des Namenspuffers in Zeichen. Wenn dieser Member 0 ist, wird das Namenselement nicht verwendet.

Name[1]

Der Name des Symbols. Der Name kann nicht ausgebucht werden, wenn die Option SYMOPT_UNDNAME mit der SymSetOptions-Funktion verwendet wird.

Anforderungen

Anforderung Wert
Header dbghelp.h
Verteilbare Komponente DbgHelp.dll 5.1 oder höher

Weitere Informationen

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName