IDebugControl5::OutputContextStackTraceEx 方法 (dbgeng.h)

OutputContextStackTraceEx 方法打印由堆栈帧数组和相应的寄存器上下文指定的调用堆栈。 OutputContextStackTraceEx 方法提供内联帧支持。 有关使用内联函数的详细信息,请参阅 调试优化代码和内联函数

语法

HRESULT OutputContextStackTraceEx(
  [in] ULONG                 OutputControl,
  [in] PDEBUG_STACK_FRAME_EX Frames,
  [in] ULONG                 FramesSize,
  [in] PVOID                 FrameContexts,
  [in] ULONG                 FrameContextsSize,
  [in] ULONG                 FrameContextsEntrySize,
  [in] ULONG                 Flags
);

参数

[in] OutputControl

指定输出的发送位置。 有关可能的值,请参阅 DEBUG_OUTCTL_XXX

[in] Frames

指定要输出的堆栈帧数组。 此数组中的元素数 FramesSize。 如果 NULL,则使用当前堆栈帧。

[in] FramesSize

指定要输出的帧数。

[in] FrameContexts

指定堆栈中每个帧的寄存器上下文。 此数组中的条目对应于 Frames 数组中的条目。 线程上下文的类型是目标有效处理器的 CONTEXT 结构。

[in] FrameContextsSize

指定由 frameContexts 指向的内存的大小(以字节为单位)。 堆栈帧数必须等于上下文数,FrameContextsSize 必须等于 FramesSize 乘以 FrameContextsEntrySize

[in] FrameContextsEntrySize

指定 FrameContexts中每个帧上下文的大小(以字节为单位)。

[in] Flags

指定要为每个帧输出的信息的位标志。 标志 可以是下表中值的任意组合。

描述
DEBUG_STACK_ARGUMENTS 在每个调用的帧中显示前三段堆栈内存。 在堆栈上传递参数的平台上,帧的代码使用堆栈参数,这些值将是函数的参数。
DEBUG_STACK_FUNCTION_INFO 显示与帧对应的函数的信息。 这包括调用约定和帧指针遗漏(FPO)信息。
DEBUG_STACK_SOURCE_LINE 显示堆栈跟踪的每个帧的源行信息。
DEBUG_STACK_FRAME_ADDRESSES 显示每个帧的返回地址、以前的帧地址和其他相关地址。
DEBUG_STACK_COLUMN_NAMES 显示列名称。
DEBUG_STACK_NONVOLATILE_REGISTERS 显示每个帧的非易失性寄存器上下文。 这仅适用于某些平台。
DEBUG_STACK_FRAME_NUMBERS 显示帧编号。
DEBUG_STACK_PARAMETERS 显示符号信息中给定的参数名称和值。
DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY 仅显示堆栈帧地址中的返回地址。
DEBUG_STACK_FRAME_MEMORY_USAGE 显示分隔帧的字节数。
DEBUG_STACK_PARAMETERS_NEWLINE 在新行上显示每个参数及其类型和值。

返回值

此方法也可能返回错误值。 有关详细信息,请参阅 返回值

返回代码 描述
S_OK
该方法成功。

要求

要求 价值
目标平台 桌面
标头 dbgeng.h

另请参阅

IDebugControl5