QtCreator 调试时没有应用程序输出

14

在使用带有CDB调试器的Win7上的QtCreator 2.8时,我无法在“应用程序输出”选项卡中看到所有的fprintf(stdout)消息!?

我尝试过:

fprintf(stderr, "...");

fprintf(stdout, "..."); fflush(stdout);

什么都没有发生。 与此同时,如果我勾选“在终端中运行”选项,它就有效了!?

尽管我注意到所有输出都会记录到调试器日志中!?

有任何想法吗?


1
你尝试在终端中运行了吗?对于Qt5 + QtCreator 2.7,我还注意到一些qDebug()打印语句没有显示在应用程序输出选项卡中。 - Son-Huy Pham
1
糟糕,我没有看到你的关于控制台的评论!但是重申一下 - 我认为这是一个新的Qt5-ish错误!希望这是一个已知问题...必须查一下。 - Son-Huy Pham
2
你应该在以下网址报告此问题:https://bugreports.qt-project.org/browse/QTCREATORBUG - Mitch
只是出于好奇:您使用fprintf而不是qDebug(),有什么原因吗? - Kurt Pattyn
你尝试在.pro文件的CONFIG变量中添加“CONSOLE”了吗? - Kurt Pattyn
是的,CONSOLE或console不起作用。 - Stef
4个回答

4
作为解决方法,您可以在CDB控制台中启用输出:工具/选项/调试器/CDB,然后勾选“使用CDB控制台”。 要显示调试器,请右键单击某个窗口标题,并选择“调试器日志”。 您还可以右键单击调试器日志视图以禁用冗长的日志。 顺便提一下,我也注意到当您从qtcreator附加到正在运行的进程时,标准应用程序输出窗口可以正常工作。

谢谢你的评论。虽然它会产生很多输出,但不会生成你在命令行中运行可执行文件时期望的输出。 - jaques-sam

0

这不是一个答案,只是一条评论,明显这是一个“特性”,不会被修复。

我刚开始将一个在Linux下使用GCC和Clang,在Windows 7下使用MinGW GCC开发的C++/Qt项目移植到了Windows 10上,并使用MSVC进行编译。如果我的测试代码作为单独的程序运行,它会向控制台(std::cout)报告“所有测试通过”(或未通过),在这种情况下,控制台是Qt Creator应用程序输出窗口。多年来,它在所有系统、所有编译器以及调试和发布模式下都能正常工作。但现在,当通过调试器运行时,它不会写入应用程序输出窗口,只有在像发布版本一样运行时才会。

在发现这个问题后(2021-04-16),我在谷歌上搜索解决方案,并最终来到了这里。


0

我知道这个答案并没有回答原问题,但是当我们搜索“无应用程序输出”时,我们找到了这个答案...

请参考以下答案:https://stackoverflow.com/a/26325743/808101。 这仅适用于qDebug()和类似函数(而不是直接输出到stdout/stderr)。 在我的情况下,我必须在QtCreator中设置QT_ASSUME_STDERR_HAS_CONSOLE环境变量为1,才能在“应用程序输出”窗口中看到qDebug()消息。对于旧版本的Qt,请参考链接的旧/弃用环境变量。


-2

我经常这样使用qDebug。

#include <QDebug> in the top of the file 

使用方法:

qDebug() << "This is a Test";

在使用QT Creator时,它可以很好地运行,无论是GUI编程还是控制台应用程序都没有问题。


7
无关紧要,问题是无论使用何种方式编写输出,QtCreator 都没有显示它。 - kralyk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接