SYMBOL_INFOW structure (dbghelp.h)
Contains symbol information.
Syntax
typedef struct _SYMBOL_INFOW {
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;
WCHAR Name[1];
} SYMBOL_INFOW, *PSYMBOL_INFOW;
Members
SizeOfStruct
The size of the structure, in bytes. This member must be set to sizeof(SYMBOL_INFO)
. Note that the total size of the data is the SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR)
. The reason to subtract one is that the first character in the name is accounted for in the size of the structure.
TypeIndex
A unique value that identifies the type data that describes the symbol. This value does not persist between sessions.
Reserved[2]
This member is reserved for system use.
Index
The unique value for the symbol. The value associated with a symbol is not guaranteed to be the same each time you run the process.
For PDB symbols, the index value for a symbol is not generated until the symbol is enumerated or retrieved through a search by name or address. The index values for all CodeView and COFF symbols are generated when the symbols are loaded.
Size
The symbol size, in bytes. This value is meaningful only if the module symbols are from a pdb file; otherwise, this value is typically zero and should be ignored.
ModBase
The base address of the module that contains the symbol.
Flags
This member can be one or more of the following values.
Value | Meaning |
---|---|
|
The symbol is a CLR token. |
|
The symbol is a constant. |
|
The symbol is from the export table. |
|
The symbol is a forwarder. |
|
Offsets are frame relative. |
|
The symbol is a known function. |
|
The symbol address is an offset relative to the beginning of the intermediate language block. This applies to managed code only. |
|
The symbol is a local variable. |
|
The symbol is managed metadata. |
|
The symbol is a parameter. |
|
The symbol is a register. The Register member is used. |
|
Offsets are register relative. |
|
The symbol is a managed code slot. |
|
The symbol is a thunk. |
|
The symbol is an offset into the TLS data area. |
|
The Value member is used. |
|
The symbol is a virtual symbol created by the SymAddSymbol function. |
Value
The value of a constant.
Address
The virtual address of the start of the symbol.
Register
The register.
Scope
The DIA scope. For more information, see the Debug Interface Access SDK in the Visual Studio documentation. (This resource may not be available in some languages
and countries.)
Tag
The PDB classification. These values are defined in Dbghelp.h in the SymTagEnum enumeration type.
NameLen
The length of the name, in characters, not including the null-terminating character.
MaxNameLen
The size of the Name buffer, in characters. If this member is 0, the Name member is not used.
Name[1]
The name of the symbol. The name can be undecorated if the SYMOPT_UNDNAME option is used with the SymSetOptions function.
Remarks
Note
The dbghelp.h header defines SYMBOL_INFO as an alias that automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that is not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.
Requirements
Requirement | Value |
---|---|
Header | dbghelp.h |
Redistributable | DbgHelp.dll 5.1 or later |