PWINDBG_STACKTRACE_ROUTINE回调函数 (wdbgexts.h)

PWINDBG_STACKTRACE_ROUTINE (StackTrace) 函数检索正在调试的进程的堆栈跟踪。 返回 读取到 StackFrame 指向的缓冲区的帧数。

语法

PWINDBG_STACKTRACE_ROUTINE PwindbgStacktraceRoutine;

ULONG PwindbgStacktraceRoutine(
  [in]  ULONG FramePointer,
  [in]  ULONG StackPointer,
  [in]  ULONG ProgramCounter,
  [out] PEXTSTACKTRACE StackFrames,
  [in]  ULONG Frames
)
{...}

参数

[in] FramePointer

指定帧指针。 如果不需要任何特定值,则只需将其设置为零。

[in] StackPointer

指定堆栈指针。 如果不需要任何特定值,则只需将其设置为零。

[in] ProgramCounter

指定指令指针。 如果不需要任何特定值,则只需将其设置为零。

[out] StackFrames

接收堆栈信息。 StackFrames 必须是指向缓冲区的指针,该缓冲区的大小足以容纳 由 Frames 指定的堆栈帧数。 堆栈帧存储在以下数据结构中:

typedef struct _tagEXTSTACKTRACE {
    ULONG       FramePointer;
    ULONG       ProgramCounter;
    ULONG       ReturnAddress;
    ULONG       Args[4];
} EXTSTACKTRACE, *PEXTSTACKTRACE;

[in] Frames

指定将放入缓冲区的最大帧数。

返回值

写入 StackFrame 指向的缓冲区的实际帧数。

注解

对于 WdbgExts 扩展,请包含 Wdbgexts.h。 For

DbgEng 扩展,包括 Wdbgexts.h 之前

Dbgeng.h. 请参阅编写 DbgEng 扩展代码

详细信息。

要求

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