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

时间:2013-06-30 09:56:29

标签: qt debugging qt-creator

使用带有CDB调试器的Win7下的QtCreator 2.8,我无法看到 应用程序输出标签我所有的fprintf(标准输出)内容!?

我试过了:

fprintf(stderr, "...");

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

什么都没发生。 在此期间,如果我选中“Run in terminal”选项,它可以正常工作!?

虽然我注意到所有输出都转到调试器日志!?

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

作为一种解决方法,您可以在CDB控制台中启用输出:tools / options / debugger / cdb然后检查"使用CDB控制台"。 要显示调试器,请右键单击某个窗口标题,然后选择" Debugger Log"。 您也可以右键单击调试器日志视图以禁用详细日志。 顺便说一下,我还注意到,当你附加到正在运行的进程时,标准的应用程序输出窗口效果很好。而不是从qtcreator开始。

答案 1 :(得分:0)

不是答案,只是评论说这显然是一个“功能”并且不会 得到修复。

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

在发现这个 (2021-04-16) 后,我在谷歌上搜索了解决方案,并登陆了这里。

答案 2 :(得分:0)

我知道这个答案没有回答最初的问题,但是因为在搜索“无应用程序输出”时我们找到了这个答案......

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

答案 3 :(得分:-2)

我经常以这种方式使用qDebug。

#include <QDebug> in the top of the file 

用法:

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

使用QT创建器时运行良好,在GUI编程或控制台应用程序中无关紧要。