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

标签 c++ c stack stack-trace dbghelp

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

我不需要知道与地址关联的符号或函数名是什么,我只需要地址列表 -- 类似于 backtrace of *nix systems 的内容

谢谢!

最佳答案

查看 CaptureStackBackTrace()函数,它在 Kernel32.dll 中。这应该可以满足您的所有需求。

Captures a stack back trace by walking up the stack and recording the information for each frame.

USHORT WINAPI CaptureStackBackTrace(
  __in       ULONG FramesToSkip,
  __in       ULONG FramesToCapture,
  __out      PVOID *BackTrace,
  __out_opt  PULONG BackTraceHash
);

关于c++ - 如何在不使用 dbghelp.dll 的情况下在 Windows 上获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/392327/

相关文章:

c - 为什么 write() 在输出重定向中打印在 printf() 之前?

python - 堆叠标题,而不是两列

c++ - C++ 中的接口(interface)类和工厂函数

c++ - 将回声效果添加到 .wav 文件

c - K&R的atof代码说明

c++ - C 链表 - 不允许指向不完整类的指针

java - 堆栈递归实现复杂度

C++ 异常 - 将 c-string 作为异常抛出是不是很糟糕?

c++ - openMP VS2017 不工作

java - 使用 JNI 在 Java 和 C 之间进行高效的数据共享