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