diff options
author | Cristian Adam <cristian.adam@gmail.com> | 2019-03-27 15:18:18 +0100 |
---|---|---|
committer | Cristian Adam <cristian.adam@gmail.com> | 2019-04-01 11:22:54 +0000 |
commit | 5738d400309713762aa8361a445ace59cb3a9653 (patch) | |
tree | 04a4741a7f905d0fde9b968eb384b8546afcee74 /src/tools/clangbackend/clangbackendmain.cpp | |
parent | f35532add8858233050e7ac1aa87f00c9260e3b7 (diff) | |
download | qt-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.cpp | 21 |
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")); |