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

问题描述 投票:1回答:2

我正在尝试做一些半测试驱动的设计,偶尔当我实现一个新功能时,它会在某个地方出现异常。所有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.
c++ debugging exception gdb googletest
2个回答
3
投票

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


3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.