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