使用带有 CDB 调试器的 Win7 下的 QtCreator 2.8,我无法在“ 应用程序输出”选项卡中看到我所有的 fprintf(stdout) 内容!?
我试过:
fprintf(stderr, "...");
fprintf(stdout, "..."); fflush(stdout);
没发生什么事。同时,如果我选中“在终端中运行”选项,它可以工作!?
虽然我注意到所有输出都进入调试器日志!?
任何的想法 ?
使用带有 CDB 调试器的 Win7 下的 QtCreator 2.8,我无法在“ 应用程序输出”选项卡中看到我所有的 fprintf(stdout) 内容!?
我试过:
fprintf(stderr, "...");
fprintf(stdout, "..."); fflush(stdout);
没发生什么事。同时,如果我选中“在终端中运行”选项,它可以工作!?
虽然我注意到所有输出都进入调试器日志!?
任何的想法 ?
作为一种解决方法,您可以在 CDB 控制台中启用输出:tools/options/debugger/cdb 然后选中“使用 CDB 控制台”。要显示调试器,请右键单击某个窗口标题并选择“调试器日志”。您也可以右键单击调试器日志视图以禁用详细日志。顺便说一句,我还注意到,当您“附加到正在运行的进程”而不是从 qtcreator 启动它时,标准应用程序输出窗口运行良好。
不是答案,只是评论这显然是一个“功能”并且不会得到修复。
我刚刚开始将在 linux 下使用 GCC 和 Clang 以及 Windows 7 和 MinGW GCC 开发的 C++/Qt 项目移植到使用 MSVC 的 Windows 10。如果我的测试代码作为单独的程序运行,它会向控制台 (std::cout) 报告“所有测试通过”(或未通过),在本例中是 Qt Creator 应用程序输出窗口。多年来,它一直在调试和发布模式下使用所有编译器在所有系统上工作。现在,当通过调试器运行时,它不会写入应用程序输出窗口,只有当它像发布版本一样运行时。
发现这一点后(2021-04-16),我在谷歌上搜索了解决方案,并登陆了这里。
我知道这个答案没有回答原始问题,但是因为在搜索“无应用程序输出”时我们找到了这个答案......
请参阅以下答案:https ://stackoverflow.com/a/26325743/808101 。这仅适用于 qDebug() 和类似函数(不直接输出到 stdout/stderr)。就我而言,我必须在 QtCreator 中设置QT_ASSUME_STDERR_HAS_CONSOLE
环境变量才能1
在“应用程序输出”窗口中看到 qDebug() 消息。对于旧版本的 Qt,请参阅旧/已弃用环境变量的链接答案。
我经常以这种方式使用 qDebug。
#include <QDebug> in the top of the file
用法:
qDebug() << "This is a Test";
它在使用 QT creator 时运行良好,在 GUI 编程或控制台应用程序中无关紧要。