forked from qt-creator/qt-creator
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 <christian.stenger@qt.io>
This commit is contained in:
@@ -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;
|
||||
|
@@ -137,6 +137,7 @@ private:
|
||||
void postResolveSymbol(const QString &module, const QString &function,
|
||||
DisassemblerAgent *agent);
|
||||
void showScriptMessages(const QString &message) const;
|
||||
void showScriptMessages(const GdbMi &message) const;
|
||||
void handleInitialSessionIdle();
|
||||
// Builtin commands
|
||||
void handleStackTrace(const DebuggerResponse &);
|
||||
|
Reference in New Issue
Block a user