【问题标题】:Qt debug feed keep spaming newlineQt 调试提要不断发送垃圾邮件换行符
【发布时间】:2018-10-23 14:19:57
【问题描述】:

我在 QtCreator 中的调试提要有问题,它不断发送垃圾邮件换行符。

如果我删除代码中的所有 qDebug() 调用,它可以正常工作并且不输出任何内容。 但是,如果调用 qDebug 一次(例如 qDebug()

main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <QtDebug>

int main(int argc, char *argv[])
{
    qDebug() << "test";

    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

【问题讨论】:

  • 嗯,也许你应该提供一个简单的代码示例;)因为我不知道你在尝试什么......
  • 欢迎来到 Stack Overflow!请edit您的问题与minimal reproducible exampleSSCCE (Short, Self Contained, Correct Example)
  • 我经常以类似的方式使用qDebug(),就像在您的示例代码中公开但没有您描述的效果。 (在 Windows 和 cygwin/X11/Windows 中)您确定在 MainWindow 代码中的某处没有另一个调用 qDebug()(您没有公开)吗?您在什么系统上运行您的示例?
  • 是的,我确定 MainWindow 中没有其他 qDegug 调用。至少在我写的代码中没有。在设计ui时生成的代码中是否有一些我看不到的电话?我正在使用 Qt_5_11_2_MinGW_32bit 的 Windows 上运行
  • 尝试使用qInstallMessaeHandler() 解决此问题。我从来没有遇到过这种情况,这听起来很奇怪。

标签: c++ qt qdebug


【解决方案1】:

您可以使用 qDebug() [以及相关的 qWarn() 和 qFatal()] 打开更好的诊断信息,这可能会帮助您找到问题。它是使用 qSetMessagePattern(..) 函数完成的。

尝试在 main() 的顶部插入它,然后运行 ​​Debug 构建,看看会发生什么。它应该输出进行每个 qDebug() 调用的函数、文件和行。

// set logging stuff
qSetMessagePattern("%{time yyyy-MM-dd hh:mm:ss.zzz} | %{function} [%{file}(%{line})] | %{message}");

【讨论】:

  • 谢谢,我添加了它,但我不断换行,没有时间和功能(我只得到它用于“测试”调用)。另外,我意识到它只是在执行模式下垃圾换行符,而不是在调试模式下。
猜你喜欢
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 2022-07-26
  • 2012-07-21
  • 2020-07-18
相关资源
最近更新 更多