IDebugSymbols3::GetSourceEntriesByLineWide 方法 (dbgeng.h)

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

语法

HRESULT GetSourceEntriesByLineWide(
  [in]            ULONG                      Line,
  [in]            PCWSTR                     File,
  [in]            ULONG                      Flags,
  [out, 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 在结果的“行”前包含 File 中的所有
DEBUG_GSEL_ALLOW_HIGHER 在结果中包括 “文件 ”中“ 后”行 “中的所有行。
DEBUG_GSEL_NEAREST_ONLY 最多只返回一个结果。 如果设置了DEBUG_GSEL_ALLOW_LOWER或DEBUG_GSEL_ALLOW_HIGHER,则返回的结果将为接近 Line 的行,但如果没有该行的符号信息,则不能为 Line
 

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

[out, optional] Entries

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

[in] EntriesCount

指定 Entries 数组中的条目数。

[out, optional] EntriesAvail

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

返回值

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

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

注解

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

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

要求

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

另请参阅

DEBUG_SYMBOL_SOURCE_ENTRY

GetSourceFileLineOffsets

IDebugSymbols3