无法在Qt Creator中检索调试输出



在Windows上的Qt Creator中,qDebug()语句不工作,并且在输出窗口中出现以下消息:

无法检索调试输出。

如何修复?

如果多个Qt Creator实例处于活动状态,则可能出现此问题。要解决这个问题,只需关闭Qt Creator的所有其他实例,它应该可以工作。

或者您可能正在运行Sysinternals的DebugView版本,这会导致相同的结果

对于我来说,我通过关闭使用其他qt创建者构建的正在运行的应用程序来解决这个问题。所以没有必要关闭其他qt创建器

我有两个QtCreator实例,我无法关闭其中一个。他们一起工作。此问题的一个解决方法是使用qInstallMessageHandler重定向应用程序输出消息。

#include "mainwindow.h"
#include <QApplication>
void redirectedOutput(QtMsgType, const QMessageLogContext &, const QString &);
QMutex debugOutMutex;
int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication app(argc, argv);
    qInstallMessageHandler(redirectedOutput);
    
    MainWindow w;
    w.show();
    
    return app.exec();
}
void redirectedOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    debugOutMutex.lock();
    std::cout << QDateTime::currentDateTime().toString("hh.mm.ss.zzz  ").toStdString() <<  msg.toStdString() << std::endl;
    if (type == QtFatalMsg) {
        abort();
    }
    debugOutMutex.unlock();
}

我也添加了一个QMutex。如果应用程序使用多个线程,则调试输出可以混合使用。

对于我来说,当我有多个应用程序实例时,出现此错误消息,而不是Qt Creator。

相关内容

  • 没有找到相关文章

最新更新