如何从谷歌测试中的异常中获取回溯信息



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

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

以一种更自动的方式,您可以添加自己的监听器,然后通过使用How to make backtrace()/backtrace_symbols()打印函数名来额外打印回溯,从而组合失败测试用例的输出?

最新更新