dbghelp.h) (SYMBOL_INFO 结构
包含符号信息。
语法
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;
成员
SizeOfStruct
结构大小(以字节为单位)。 此成员必须设置为 sizeof(SYMBOL_INFO)
。 请注意,数据的总大小为 SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR)
。 减去一个字符的原因是名称中的第一个字符在结构的大小中被考虑。
TypeIndex
一个唯一值,该值标识描述符号的类型数据。 此值不会在会话之间保留。
Reserved[2]
此成员保留供系统使用。
Index
符号的唯一值。 与符号关联的值不能保证每次运行进程时都相同。
对于 PDB 符号,除非按名称或地址通过搜索来枚举或检索符号,否则不会生成符号的索引值。 加载符号时,将生成所有 CodeView 和 COFF 符号的索引值。
Size
如果符号是位域成员) ,则符号大小(以字节 (或位为单位)。
仅当模块符号来自 pdb 文件时,此值才有意义;否则,此值通常为零,应忽略。
ModBase
包含 符号的模块的基址。
Flags
此成员可以是以下一个或多个值。
值 | 含义 |
---|---|
|
符号是 CLR 标记。 |
|
符号是常量。 |
|
符号来自导出表。 |
|
符号是转发器。 |
|
偏移量是相对于帧的。 |
|
符号是一个已知函数。 |
|
符号地址是相对于中间语言块开头的偏移量。 这仅适用于托管代码。 |
|
符号是局部变量。 |
|
符号是托管元数据。 |
|
符号是参数。 |
|
符号是寄存器。 使用 Register 成员。 |
|
偏移量是寄存器相对的。 |
|
符号是托管代码槽。 |
|
符号是 thunk。 |
|
符号是 TLS 数据区域的偏移量。 |
|
使用 Value 成员。 |
|
符号是由 SymAddSymbol 函数创建的虚拟符号。 |
Value
常量的值。
Address
符号开头的虚拟地址。
Register
寄存器。
Scope
DIA 范围。 有关详细信息,请参阅 Visual Studio 文档中的 调试接口访问 SDK 。 (此资源可能在某些语言中不可用
和 countries.)
Tag
PDB 分类。 这些值在 Dbghelp.h 中的 SymTagEnum 枚举类型中定义。
NameLen
名称的长度(以字符为单位),不包括 null 终止符。
MaxNameLen
名称缓冲区的大小(以字符为单位)。 如果此成员为 0,则不使用 Name 成员。
Name[1]
符号的名称。 如果将 SYMOPT_UNDNAME 选项与 SymSetOptions 函数一起使用,则可以取消修饰该名称。
要求
要求 | 值 |
---|---|
Header | dbghelp.h |
可再发行组件 | DbgHelp.dll 5.1 或更高版本 |