Не удается получить выходные данные отладки в Qt Creator
В Qt Creator на Windows, qDebug()
операторы не работают, и в окне вывода появляется следующее сообщение:
Не удается получить выходные данные отладки.
Как это можно исправить?
5 ответов
Эта проблема может появиться, если активен более одного экземпляра Qt Creator. Чтобы исправить проблему, просто закройте все другие экземпляры Qt Creator, и это должно работать.
Для меня я решил проблему, просто закрыв работающее приложение, созданное с помощью другого создателя qt. Так что нет необходимости закрывать другого создателя qt.
Или вы можете запустить версию DebugView от Sysinternals, которая приводит к тому же результату.
Что ж, у меня было два экземпляра 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.