diff options
Diffstat (limited to 'src/corelib/global/qlogging.cpp')
-rw-r--r-- | src/corelib/global/qlogging.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 89f49324c0..e53dcdcfb0 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -106,6 +106,8 @@ # if __UCLIBC_HAS_BACKTRACE__ # define QLOGGING_HAVE_BACKTRACE # endif +# elif defined(Q_OS_ANDROID) && __ANDROID_API__ < 33 + // Android lacked backtrace logging until API level 33. # elif (defined(__GLIBC__) && defined(__GLIBCXX__)) || (__has_include(<cxxabi.h>) && __has_include(<execinfo.h>)) # define QLOGGING_HAVE_BACKTRACE # endif @@ -935,6 +937,12 @@ Q_AUTOTEST_EXPORT QByteArray qCleanupFuncinfo(QByteArray info) // Don't know how to parse this function name return info; } + if (info.indexOf('>', pos) != -1 + || info.indexOf(':', pos) != -1) { + // that wasn't the function argument list. + pos = info.size(); + break; + } // find the beginning of the argument list --pos; @@ -1543,7 +1551,7 @@ static bool slog2_default_handler(QtMsgType type, const QMessageLogContext &cont // Set as the default buffer slog2_set_default_buffer(buffer_handle); } - int severity; + int severity = SLOG2_INFO; //Determines the severity level switch (type) { case QtDebugMsg: @@ -1669,7 +1677,7 @@ static bool android_default_message_handler(QtMsgType type, #endif //Q_OS_ANDROID #ifdef Q_OS_WIN -static void win_outputDebugString_helper(QStringView message) +static void win_outputDebugString_helper(const QString &message) { const int maxOutputStringLength = 32766; static QBasicMutex m; @@ -1681,7 +1689,7 @@ static void win_outputDebugString_helper(QStringView message) wchar_t *messagePart = new wchar_t[maxOutputStringLength + 1]; for (int i = 0; i < message.length(); i += maxOutputStringLength ) { const int length = std::min(message.length() - i, maxOutputStringLength ); - const int len = message.mid(i, length).toWCharArray(messagePart); + const int len = QStringView{message}.mid(i, length).toWCharArray(messagePart); Q_ASSERT(len == length); messagePart[len] = 0; OutputDebugString(messagePart); |