【问题标题】:No application output in QtCreator debugQtCreator 调试中没有应用程序输出
【发布时间】:2013-06-30 09:56:28
【问题描述】:

使用带有 CDB 调试器的 Win7 下的 QtCreator 2.8,我在 应用程序输出标签我所有的 fprintf(stdout) 东西!?

我试过了:

fprintf(stderr, "...");

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

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

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

有什么想法吗?

【问题讨论】:

  • 您是否尝试过在终端中运行?对于 Qt5 + QtCreator 2.7,我还注意到一些 qDebug() 打印语句未显示在应用程序输出选项卡上。
  • 哎呀,我没有阅读您对控制台的评论!但是是的,重申一下 - 我认为这是一个新的 Qt5 错误!我希望这是一个已知问题...必须查找它
  • 您应该将其报告为错误:bugreports.qt-project.org/browse/QTCREATORBUG
  • 出于好奇:你使用 qDebug() 的 fprintf iso 有什么原因吗?
  • 您是否尝试将CONSOLE 添加到.pro 文件中的CONFIG 变量中?

标签: qt debugging qt-creator


【解决方案1】:

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

【讨论】:

  • 感谢您的评论。这确实为您提供了很多输出,但不是您从命令行运行可执行文件时所期望的输出。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      我经常这样使用qDebug。

      #include <QDebug> in the top of the file 
      

      用法:

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

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

      【讨论】:

      • 这里无关紧要,问题是输出在QtCreator中不管你用什么写的都不显示。
      猜你喜欢
      • 2017-02-25
      • 2018-05-29
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 2023-01-26
      • 1970-01-01
      • 2017-07-13
      相关资源
      最近更新 更多