debugging 如何在googletest中从异常中获取回溯信息?

oxosxuxt  于 2023-04-30  发布在  Go
关注(0)|答案(2)|浏览(126)

我正在尝试做一些半测试驱动的设计,偶尔当我实现一个新功能时,它会在某个地方出现异常。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.
6yt4nkrj

6yt4nkrj1#

使用catch throw gdb命令在抛出异常之前设置特殊断点。当它被击中时,你可以看到像往常一样通过命令bt进行回溯。参见https://sourceware.org/gdb/onlinedocs/gdb/Set-Catchpoints.html

ss2ws0br

ss2ws0br2#

以一种更自动的方式,您可以add your own listener,然后通过使用How to make backtrace()/backtrace_symbols() print the function names?打印额外的回溯来合并失败测试用例的输出

相关问题