From efe5735452cdf8c847f2b00105f4c962da3828a9 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 24 Feb 2023 09:25:15 +0100 Subject: Debugger: optimize logging script messages Avoid parsing the gdbmi output twice just for printing out messages to the debugger log. Change-Id: I928fc3a7d55c318056afff09cfbc25d115932bc0 Reviewed-by: Christian Stenger --- src/plugins/debugger/cdb/cdbengine.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/plugins/debugger/cdb/cdbengine.cpp') diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index 253cf3f6e0..0ecdbf8d1a 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -1274,9 +1274,15 @@ void CdbEngine::showScriptMessages(const QString &message) const { GdbMi gdmiMessage; gdmiMessage.fromString(message); - if (!gdmiMessage.isValid()) + if (gdmiMessage.isValid()) + showScriptMessages(gdmiMessage); + else showMessage(message, LogMisc); - for (const GdbMi &msg : gdmiMessage["msg"]) { +} + +void CdbEngine::showScriptMessages(const GdbMi &message) const +{ + for (const GdbMi &msg : message["msg"]) { if (msg.name() == "bridgemessage") showMessage(msg["msg"].data(), LogMisc); else @@ -2085,11 +2091,11 @@ void CdbEngine::handleExtensionMessage(char t, int token, const QString &what, c if (t == 'R') { response.resultClass = ResultDone; response.data.fromString(message); - if (!response.data.isValid()) { + if (response.data.isValid()) { + showScriptMessages(response.data); + } else { response.data.m_data = message; response.data.m_type = GdbMi::Tuple; - } else { - showScriptMessages(message); } } else { response.resultClass = ResultError; -- cgit v1.2.1