IDebugControl3::OutputStackTrace 方法 (dbgeng.h)

OutputStackTrace 方法输出提供的堆栈帧或当前堆栈帧。

语法

HRESULT OutputStackTrace(
  [in]           ULONG              OutputControl,
  [in, optional] PDEBUG_STACK_FRAME Frames,
  [in]           ULONG              FramesSize,
  [in]           ULONG              Flags
);

参数

[in] OutputControl

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

[in, optional] Frames

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

[in] FramesSize

指定要输出的帧数。

[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
方法成功。

注解

可以使用 GetStackTrace 获取堆栈帧数组。

要求

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

另请参阅

GetContextStackTrace

GetStackTrace

IDebugControl

IDebugControl2

IDebugControl3

k、kb、kc、kd、kp、kP、kv(显示堆栈回溯)