应用程序能否以编程方式生成自己的堆栈跟踪?

标签 c stack-trace

我有一个用 C 编写的程序,可以在 Linux、MacOS 和 Windows 上运行。有没有一种方法可以调用函数并生成堆栈跟踪?这对我来说非常有用。理想情况下,我想在所有三个平台上都这样做,但 Linux 是最重要的。 (Windows 正在通过 mingw 编译。)

谢谢。

最佳答案

例如,在 GCC 和 GNU libc C 库中,您可以使用 backtrace() .

正如@slugonamission 所建议的,Windows 提供 CaptureStackBackTrace() - 谢谢!

其他平台可能提供类似的功能。

(这显然是一个平台相关的问题。)

(在相关说明中,也存在 self-disassembly libraries 。)

关于应用程序能否以编程方式生成自己的堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8031742/

相关文章:

C 编译错误 - #include "cmakeconfig.h"- 没有这样的文件或目录

任何人都可以在这里发现错误

c - 访问ELF字符串表节头

c - 字符的结构填充

c++ - 了解 C/C++ 中 "void"关键字的确切含义

tcl - Tcl 中 errorInfo 中的堆栈跟踪信息

c++ - 从 x64 进程获取函数表

c++ - 当我的程序崩溃时如何自动生成堆栈跟踪

android - 如何查看 Android Studio 中发生异常的确切位置?

c - 如何通过 mips 中的其他进程获取正在运行的进程堆栈的回溯?