IDebugAdvanced3::GetSymbolInformation 方法 (dbgeng.h)

GetSymbolInformation 方法返回有关符号的指定信息。

语法

HRESULT GetSymbolInformation(
  [in]            ULONG   Which,
  [in]            ULONG64 Arg64,
  [in]            ULONG   Arg32,
  [out, optional] PVOID   Buffer,
  [in]            ULONG   BufferSize,
  [out, optional] PULONG  InfoSize,
  [out, optional] PSTR    StringBuffer,
  [in]            ULONG   StringBufferSize,
  [out, optional] PULONG  StringSize
);

参数

[in] Which

指定要返回的信息片段。 哪些 可以采用下表中的值之一。

价值 返回的信息
DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE 返回指定断点的源代码文件名和行号。 行号作为 ULONG 返回到 Buffer。 文件名将返回到 stringBuffer
DEBUG_SYMINFO_IMAGEHLP_MODULEW64 返回描述指定模块的IMAGEHLP_MODULEW64结构。 有关此结构的详细信息,请参阅调试帮助库文档(dbghelp.chm)中的IMAGEHLP_MODULE64主题。

不返回任何字符串,StringBufferStringBufferSize,并且 StringSize 必须全部设置为零。

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE 返回内存和 PDB 标记类型中的位置指定的符号的 Unicode 名称。 该名称将返回到 Buffer。 不使用 StringBuffer
DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS 返回指定模块中具有指定 PDB 标记类型的符号名称和偏移量的列表。 偏移量作为 ULONG 值的数组返回,以 Buffer。 名称的返回顺序与 StringBuffer偏移量相同。 某些名称可能包含嵌入的零,因为批注可以具有多部分名称;因此,每个名称以两个 null 字符结尾。

[in] Arg64

指定 64 位参数。 此参数具有以下解释,具体取决于 的值:

DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE

忽视。

DEBUG_SYMINFO_IMAGEHLP_MODULEW64

正在请求其说明的模块的基址。

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE

指定目标内存中请求其名称的符号的地址。

DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS

指定请求其符号的模块。 Arg64 是模块内存分配中的一个位置。

[in] Arg32

指定 32 位参数。 此参数具有以下解释,具体取决于 的值:

DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE

所需断点的引擎断点 ID。

DEBUG_SYMINFO_IMAGEHLP_MODULEW64

设置为零。

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE

符号的 PDB 分类。 Arg32 必须是 Dbghelp.h 中定义的 SymTagEnum 枚举中的值之一。 有关详细信息,请参阅 PDB 文档。

DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS

符号的 PDB 分类。 Arg32 必须是 Dbghelp.h 中定义的 SymTagEnum 枚举中的值之一。 有关详细信息,请参阅 PDB 文档。

[out, optional] Buffer

接收请求的符号信息。 返回的数据的类型取决于 的值。 如果 缓冲区NULL,则不会返回此信息。

[in] BufferSize

指定缓冲区 缓冲区的大小(以字节为单位)。

[out, optional] InfoSize

如果此方法返回 S_OKInfoSize 接收返回到 Buffer的符号信息的大小(以字节为单位)。 如果此方法返回 S_FALSE,则提供的缓冲区不够大,InfoSize 接收所需的缓冲区大小。 如果 InfoSizeNULL,则不会返回此信息。

[out, optional] StringBuffer

接收请求的字符串。 此字符串的解释取决于 的值。 如果 StringBufferNULL,则不会返回此信息。

[in] StringBufferSize

指定字符串缓冲区的大小(以字符为单位)StringBuffer

[out, optional] StringSize

接收返回 StringBuffer的字符串的大小(以字符为单位)。 如果 StringSizeNULL,则不会返回此信息。

返回值

此方法也可能返回错误值。 有关详细信息,请参阅 返回值

返回代码 描述
S_OK
该方法成功。
S_FALSE
该方法成功。 但是,信息将不适合缓冲区 缓冲区 或字符串不适合缓冲区 StringBuffer,因此信息或名称被截断。

要求

要求 价值
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)