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

此成员可以是以下一个或多个值。

价值 意义
SYMFLAG_CLR_TOKEN
0x00040000
符号是 CLR 令牌。
SYMFLAG_CONSTANT
0x00000100
符号是常量。
SYMFLAG_EXPORT
0x00000200
符号来自导出表。
SYMFLAG_FORWARDER
0x00000400
符号是转发器。
SYMFLAG_FRAMEREL
0x00000020
偏移量是相对于帧的。
SYMFLAG_FUNCTION
0x00000800
符号是已知的函数。
SYMFLAG_ILREL
0x00010000
符号地址是相对于中间语言块开头的偏移量。 这仅适用于托管代码。
SYMFLAG_LOCAL
0x00000080
符号是局部变量。
SYMFLAG_METADATA
0x00020000
符号是托管元数据。
SYMFLAG_PARAMETER
0x00000040
符号是参数。
SYMFLAG_REGISTER
0x00000008
符号是寄存器。 使用 Register 成员。
SYMFLAG_REGREL
0x00000010
偏移量是寄存器相对的。
SYMFLAG_SLOT
0x00008000
符号是托管代码槽。
SYMFLAG_THUNK
0x00002000
符号是一个 thunk。
SYMFLAG_TLSREL
0x00004000
符号是 TLS 数据区域的偏移量。
SYMFLAG_VALUEPRESENT
0x00000001
使用 成员。
SYMFLAG_VIRTUAL
0x00001000
该符号是由 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 或更高版本

另请参阅

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName