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。 如果 Frames 为 NULL,则使用当前堆栈帧。
[in] FramesSize
指定要输出的帧数。
[in] FrameContexts
指定堆栈中每个帧的寄存器上下文。 此数组中的条目对应于 Frames 数组中的条目。 线程上下文的类型是目标有效处理器的 CONTEXT 结构。
[in] FrameContextsSize
指定 FrameContexts 指向的内存的大小(以字节为单位)。 堆栈帧数必须等于上下文数, 而 FrameContextsSize 必须等于 FrameSize 乘以 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 | 在新行上显示每个参数及其类型和值。 |
返回值
此方法也可能返回错误值。 有关更多详细信息 ,请参阅返回值 。
返回代码 | 说明 |
---|---|
|
方法成功。 |
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h |