如何在不使用dbghelp.dll的情况下在Windows上获取堆栈跟踪?

Uha*_*all 7 c c++ stack stack-trace dbghelp

如何在不使用dbghelp.dll的情况下在Windows上获取堆栈地址跟踪?

我不需要知道与地址相关的符号或函数名称,我只想要地址列表 - 类似于*nix系统的回溯.

谢谢!

Kri*_*ler 9

查看CaptureStackBackTrace()函数,该函数位于Kernel32.dll中.这应该做你需要的一切.

通过向上移动堆栈并记录每个帧的信息来捕获堆栈后退跟踪.

USHORT WINAPI CaptureStackBackTrace(
  __in       ULONG FramesToSkip,
  __in       ULONG FramesToCapture,
  __out      PVOID *BackTrace,
  __out_opt  PULONG BackTraceHash
);
Run Code Online (Sandbox Code Playgroud)