IDebugControl2::OutputDisassemblyLines (dbgeng.h)
OutputDisassemblyLines 方法反汇编多个处理器指令,并将生成的程序集指令发送到输出回调。
语法
HRESULT OutputDisassemblyLines(
[in] ULONG OutputControl,
[in] ULONG PreviousLines,
[in] ULONG TotalLines,
[in] ULONG64 Offset,
[in] ULONG Flags,
[out, optional] PULONG OffsetLine,
[out, optional] PULONG64 StartOffset,
[out, optional] PULONG64 EndOffset,
[out, optional] PULONG64 LineOffsets
);
参数
[in] OutputControl
指定输出控件,该控件确定哪个客户端的输出回调接收输出。 有关可能的值 ,请参阅DEBUG_OUTCTL_XXX。 有关输出详细信息,请参阅 输入和输出。
[in] PreviousLines
指定在 Offset 中的指令之前要包括在输出中的指令行数。 通常,每个指令在一行上输出。 但是,某些指令可能会处理多行输出;这可能会导致在 Offset 中的指令之前输出的行数大于 PreviousLines。
[in] TotalLines
指定要包括在输出中的指令行总数。 通常,每个指令在一行上输出。 但是,某些指令可能会处理多行输出;这可能会导致输出的行数大于 TotalLines。
[in] Offset
指定要反汇编的说明在目标内存中的位置。 反汇编输出将在这些 处理器指令之前启动 PreviousLines 行。
[in] Flags
指定影响此方法行为的位标志。 下表列出了可以设置的位。
Bit-Flag | 设置时的效果 |
---|---|
DEBUG_DISASM_EFFECTIVE_ADDRESS | 计算当前寄存器信息中每个指令的有效地址,并输出该地址。 |
DEBUG_DISASM_MATCHING_SYMBOLS | 如果指令的地址具有完全匹配的符号,则输出符号。 |
DEBUG_DISASM_SOURCE_LINE_NUMBER | 在输出中包括每个指令的源行号。 |
DEBUG_DISASM_SOURCE_FILE_NAME | 在输出中包括源文件名。 |
[out, optional] OffsetLine
接收输出中包含 Offset 指令的行 号。 如果 OffsetLine 为 NULL,则不返回此信息。
[out, optional] StartOffset
接收输出中包含的第一个指令的目标内存中的位置。 如果 StartOffset 为 NULL,则不返回此信息。
[out, optional] EndOffset
在目标内存中接收最后一个反汇编指令后指令的 locaiton。
[out, optional] LineOffsets
从 Offset 处指令开始,接收输出中包含的指令的目标内存中 的位置。 LineOffsets 是包含 TotalLines 元素的 数组。
Offset 是此数组中第一个条目的值,除非在此指令之前反汇编指令时出错。 在这种情况下,第一个条目将包含DEBUG_ANY_ID ,Offset 将放置在数组的第二个条目中 (索引一) 。
如果指令的输出跨越多行,则数组中对应于指令第一行的元素将包含指令的地址。
如果 LineOffsets 为 NULL,则不返回此信息。
返回值
此方法还可以返回错误值。 有关详细信息 ,请参阅 返回值。
返回代码 | 描述 |
---|---|
|
方法成功。 |
注解
程序集语言取决于目标系统的有效处理器类型。 有关程序集语言的信息,请参阅处理器文档。
有关在调试器应用程序中使用程序集的概述,请参阅 在程序集模式下调试。 有关将程序集与调试器引擎 API 一起使用的信息,请参阅 汇编和反汇编说明。
要求
目标平台 | 桌面型 |
标头 | dbgeng.h (包括 Dbgeng.h) |
请参阅
反馈
提交和查看相关反馈