关于c ++:如果断言在Qt中发生,我可以获取断言的名称吗? 控制台应用

Can I get the names of the asserts if they happen in Qt? Console Application

我有一个用C++ (Qt)编写的长时间运行的控制台应用程序。 如果发生assert-我的应用程序崩溃非常严重。
所以我需要知道什么断言失败了。 我需要知道这一点,因为我必须找到并修复代码中的错误部分。
我该如何实现? 我不希望我的应用程序崩溃,但是如果失败的断言导致崩溃-我想知道问题出在哪里。 谢谢。 :)
PS:我可以log断言名称和应用崩溃时的位置吗?

PS2:发生的断言是内部的,例如 Qt的。


您可以使用命令行参数将输出重定向到文件

1
2>&1 | tee ~/console.txt

这会将stderr和stdout复制到txt文件。 Q_ASSERTS已打印到stderr,因此您现在应该可以看到输出并诊断问题