summaryrefslogtreecommitdiff
path: root/src/tools/clangbackend/clangbackendmain.cpp
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@gmail.com>2019-03-27 15:18:18 +0100
committerCristian Adam <cristian.adam@gmail.com>2019-04-01 11:22:54 +0000
commit5738d400309713762aa8361a445ace59cb3a9653 (patch)
tree04a4741a7f905d0fde9b968eb384b8546afcee74 /src/tools/clangbackend/clangbackendmain.cpp
parentf35532add8858233050e7ac1aa87f00c9260e3b7 (diff)
downloadqt-creator-5738d400309713762aa8361a445ace59cb3a9653.tar.gz
Clang Backend: enable Windows debug logging
On Windows the debug messages are not sent to the Windows logger, because a custom Qt message handler was set up. This commit forwards the messages also to the default message handler. Change-Id: I1745a86f72fcc1e48cd52603633fca2f23c8fedf Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io> Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/tools/clangbackend/clangbackendmain.cpp')
-rw-r--r--src/tools/clangbackend/clangbackendmain.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/tools/clangbackend/clangbackendmain.cpp b/src/tools/clangbackend/clangbackendmain.cpp
index 5cbac3ce60..1e95db3ef3 100644
--- a/src/tools/clangbackend/clangbackendmain.cpp
+++ b/src/tools/clangbackend/clangbackendmain.cpp
@@ -57,8 +57,25 @@ QString processArguments(QCoreApplication &application)
}
#ifdef Q_OS_WIN
-static void messageOutput(QtMsgType type, const QMessageLogContext &, const QString &msg)
+struct MessageHandler {
+ MessageHandler(QtMessageHandler handler)
+ {
+ defaultHandler = qInstallMessageHandler(handler);
+ }
+
+ ~MessageHandler()
+ {
+ qInstallMessageHandler(defaultHandler);
+ }
+
+ static QtMessageHandler defaultHandler;
+};
+
+QtMessageHandler MessageHandler::defaultHandler = nullptr;
+
+static void messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
+ MessageHandler::defaultHandler(type, context, msg);
std::wcout << msg.toStdWString() << std::endl;
if (type == QtFatalMsg)
abort();
@@ -68,7 +85,7 @@ static void messageOutput(QtMsgType type, const QMessageLogContext &, const QStr
int main(int argc, char *argv[])
{
#ifdef Q_OS_WIN
- qInstallMessageHandler(messageOutput);
+ MessageHandler messageHandler(&messageOutput);
#endif
QCoreApplication::setOrganizationName(QStringLiteral("QtProject"));
QCoreApplication::setOrganizationDomain(QStringLiteral("qt-project.org"));