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 |
---|---|
|
Das Symbol ist ein CLR-Token. |
|
Das Symbol ist eine Konstante. |
|
Das Symbol stammt aus der Exporttabelle. |
|
Das Symbol ist eine Weiterleitung. |
|
Offsets sind rahmenrelativ. |
|
Das Symbol ist eine bekannte Funktion. |
|
Die Symboladresse ist ein Offset relativ zum Anfang des zwischengeschalteten Sprachblocks. Dies gilt nur für verwalteten Code. |
|
Das Symbol ist eine lokale Variable. |
|
Das Symbol sind verwaltete Metadaten. |
|
Das Symbol ist ein Parameter. |
|
Das Symbol ist ein Register. Das Register-Element wird verwendet. |
|
Offsets sind registerrelativ. |
|
Das Symbol ist ein Slot mit verwaltetem Code. |
|
Das Symbol ist ein Thunk. |
|
Das Symbol ist ein Offset in den TLS-Datenbereich. |
|
Das Value-Element wird verwendet. |
|
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 |