IDebugSymbols3::GetSourceEntriesByLine 方法 (dbgeng.h)

GetSourceEntriesByLine 方法查询符号信息,并返回目标内存中对应于源文件中的行的位置。

语法

HRESULT GetSourceEntriesByLine(
  [in]                    ULONG                      Line,
  [in]                    PCSTR                      File,
  [in]                    ULONG                      Flags,
  [out, writes, optional] PDEBUG_SYMBOL_SOURCE_ENTRY Entries,
  [in]                    ULONG                      EntriesCount,
  [out, optional]         PULONG                     EntriesAvail
);

参数

[in] Line

指定要查询的源文件中的行。 第一行的数字 1

[in] File

指定源文件。 针对此文件查询目标中的每个模块的符号。

[in] Flags

指定控制此方法行为的位标志。 标志 可以是下表中值的任意组合。

价值 描述
DEBUG_GSEL_NO_SYMBOL_LOADS 调试器引擎 将仅搜索已加载符号的模块中的文件。 不会加载其他模块的符号。

如果未设置此选项,调试器引擎将加载所有模块的符号,直到找到 文件中指定的文件。

DEBUG_GSEL_ALLOW_LOWER 在结果中 之前,在 文件 中包括所有行。
DEBUG_GSEL_ALLOW_HIGHER 在结果中 后,在 文件 中包含所有行。
DEBUG_GSEL_NEAREST_ONLY 最多只返回一个结果。 如果设置了DEBUG_GSEL_ALLOW_LOWER或DEBUG_GSEL_ALLOW_HIGHER,则返回的结果将为接近 的行,但如果该行没有符号信息,则无法 Line

若要使用默认标志集,请将 标志 设置为DEBUG_GSEL_DEFAULT。 这会将上一个表中的所有标志都关闭。

[out, writes, optional] Entries

接收目标内存中与所查询的源行对应的位置。 此数组中的每个条目的类型为 DEBUG_SYMBOL_SOURCE_ENTRY,并包含源行号以及目标内存中的一个位置。

[in] EntriesCount

指定 数组中的条目数。

[out, optional] EntriesAvail

接收与目标内存中找到的查询匹配的位置数。

返回值

这些方法还可以返回错误值。 有关详细信息,请参阅 返回值

返回代码 描述
S_OK
该方法成功。
S_FALSE
该方法成功。 但是,条目 数组不够大,无法容纳与查询匹配的所有结果,并且丢弃了额外的结果。
E_NOINTERFACE
查询未生成任何结果。 这包括符号信息不适用于指定文件的情况。

言论

调试器应用程序可以使用这些方法提取目标内存中的位置,以设置断点或将源代码与反汇编指令匹配。 例如,设置标志DEBUG_GSEL_ALLOW_HIGHER,DEBUG_GSEL_NEAREST_ONLY将返回从指定行开始的第一段代码的目标内存位置。

有关源文件的详细信息,请参阅 使用源文件

要求

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

另请参阅

DEBUG_SYMBOL_SOURCE_ENTRY

GetSourceFileLineOffsets

IDebugSymbols3