这是平台特定的,并且也取决于您如何编译代码。如果您使用gcc编译代码并使用-fomit-frame-pointer,那么很难得到有用的回溯信息,通常需要启发式方法。如果您使用任何使用该标志的库,您将遇到问题--它通常用于高度优化的库(例如nVidia的OpenGL库)。这不是一个自包含的解决方案,因为它是更大引擎的一部分,但是代码很有帮助: https://svn.stepmania.com/svn/trunk/stepmania/src/archutils/Unix/Backtrace.cpp(Linux、OSX) https://svn.stepmania.com/svn/trunk/stepmania/src/archutils/Win32/Crash.cpp(Win32的CrashHandler::do_backtrace) https://svn.stepmania.com/svn/trunk/stepmania/src/archutils/Darwin/DarwinThreadHelpers.cpp(OSX) 这包括在gcc可用时使用帧指针进行回溯和在无法使用时使用启发式回溯。这可能会在跟踪中产生虚假条目,但对于获取崩溃报告的回溯比完全丢失跟踪要好得多。这些目录中还有其他相关代码,您需要查看以利用该代码(符号查找、信号处理);这些链接是一个很好的起点。