12

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

我试过:

fprintf(stderr, "...");

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

没发生什么事。同时,如果我选中“在终端中运行”选项,它可以工作!?

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

任何的想法 ?

4

4 回答 4

4

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

于 2014-07-14T18:10:34.930 回答
0

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

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

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

于 2021-04-16T13:41:04.350 回答
0

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

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

于 2021-05-02T15:50:01.950 回答
-2

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

#include <QDebug> in the top of the file 

用法:

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

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

于 2013-08-27T07:51:18.967 回答