我有一个用 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/