在 Windows 上的 Qt Creator 中,qDebug()
语句不起作用,并且在输出窗口中出现以下消息:
无法检索调试输出。
如何修复?
在 Windows 上的 Qt Creator 中,qDebug()
语句不起作用,并且在输出窗口中出现以下消息:
无法检索调试输出。
如何修复?
如果有多个 Qt Creator 实例处于活动状态,则会出现此问题。要解决此问题,只需关闭 Qt Creator 的所有其他实例,它应该可以工作。
对我来说,我通过简单地关闭使用其他 qt 创建者构建的正在运行的应用程序解决了这个问题。所以没有必要关闭其他 qt 创建者。
或者您可能正在运行 Sysinternals 的 DebugView 版本,这会导致相同的结果。
对我来说,当我有多个应用程序实例而不是 Qt Creator 实例时,会出现此错误消息。
Well, I had two instances of QtCreator and I could not close one of them. They work together.
One workaround for this problem is redirecting your application output messages using 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();
}
I added a QMutex
too. If your application is utilizing more than one thread, debug outputs can be mixed.