我正在使用GCC编译器在Linux上工作.当我的C++程序崩溃时,我希望它能自动生成一个堆栈跟踪.
我的程序由许多不同的用户运行,它也可以在Linux,Windows和Macintosh上运行(所有版本都使用编译gcc).
我希望我的程序能够在崩溃时生成堆栈跟踪,并且在用户下次运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我不知道如何生成跟踪字符串.有任何想法吗?
我正在尝试做一些半测试驱动的设计,偶尔当我实现一个新功能时,它会在某处出现异常。所有 gtest 告诉我的是异常是什么,并且没有给我任何回溯信息。
如果我运行 gdb --args --gtest_catch_exceptions=0,它将在测试中停止并出现异常但没有任何回溯信息。它简单地说:
[ RUN ] TESTNAME.test_case
EXCEPTION: exception description[Inferior 1 (process 30528) exited with code 0377]
(gdb) bt
No stack.
Run Code Online (Sandbox Code Playgroud) c++ ×2
assert ×1
crash ×1
debugging ×1
exception ×1
gcc ×1
gdb ×1
googletest ×1
stack-trace ×1