我可以得到断言的名称,如果他们发生在Qt?控制台应用程序

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

本文关键字:Qt 应用程序 控制台 他们 如果 断言 我可以      更新时间:2023-10-16

我有一个用C++ (Qt)编写的长时间运行的控制台应用程序。如果发生assert -我的应用程序崩溃非常严重。所以我需要知道哪个assert失败了。我需要知道这一点,因为我必须找到并修复代码的错误部分。我怎样才能做到这一点呢?我不希望我的应用程序崩溃,但如果失败的断言崩溃-我想知道什么是错的,在哪里。谢谢。:)PS:我可以log断言的名称和地方,当应用程序崩溃?

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

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

2>&1 | tee ~/console.txt 

将stderr和stdout复制到一个txt文件中。q_assert被打印为stderr,因此您现在应该能够看到输出并诊断问题