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
接收与目标内存中找到的查询匹配的位置数。
返回值
这些方法还可以返回错误值。 有关详细信息,请参阅 返回值。
返回代码 | 描述 |
---|---|
|
该方法成功。 |
|
该方法成功。 但是,条目 数组不够大,无法容纳与查询匹配的所有结果,并且丢弃了额外的结果。 |
|
查询未生成任何结果。 这包括符号信息不适用于指定文件的情况。 |
言论
调试器应用程序可以使用这些方法提取目标内存中的位置,以设置断点或将源代码与反汇编指令匹配。 例如,设置标志DEBUG_GSEL_ALLOW_HIGHER,DEBUG_GSEL_NEAREST_ONLY将返回从指定行开始的第一段代码的目标内存位置。
有关源文件的详细信息,请参阅 使用源文件。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |