diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 619b109811453e30547d09297ce22d9ad1b83295..d53263608e8c43bc6538fb3ed84112be4fa930f3 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -524,7 +524,9 @@ void GdbEngine::handleResponse(const QByteArray &buff) // Show some messages to give the impression something happens. if (data.startsWith("Reading symbols from ")) showStatusMessage(tr("Reading %1...").arg(_(data.mid(21))), 1000); - if (data.startsWith("[New ")) + if (data.endsWith('\n')) + data.chop(1); + if (data.startsWith("[New ") || data.startsWith("[Thread ")) showStatusMessage(_(data), 1000); break; } @@ -3982,10 +3984,12 @@ void GdbEngine::handleFetchDisassemblerByLine(const GdbResponse &response) else ac.agent->setContents(parseDisassembler(lines)); } else if (response.resultClass == GdbResultError) { - //536^error,msg="mi_cmd_disassemble: Invalid line number" + // 536^error,msg="mi_cmd_disassemble: Invalid line number" QByteArray msg = response.data.findChild("msg").data(); if (msg == "mi_cmd_disassemble: Invalid line number") fetchDisassemblerByAddress(ac.agent, true); + else + showStatusMessage(tr("Disassembler failed: %1").arg(_(msg)), 5000); } } @@ -4000,6 +4004,10 @@ void GdbEngine::handleFetchDisassemblerByAddress1(const GdbResponse &response) fetchDisassemblerByAddress(ac.agent, false); else ac.agent->setContents(parseDisassembler(lines)); + } else { + // 26^error,msg="Cannot access memory at address 0x801ca308" + QByteArray msg = response.data.findChild("msg").data(); + showStatusMessage(tr("Disassembler failed: %1").arg(_(msg)), 5000); } } @@ -4011,6 +4019,9 @@ void GdbEngine::handleFetchDisassemblerByAddress0(const GdbResponse &response) if (response.resultClass == GdbResultDone) { GdbMi lines = response.data.findChild("asm_insns"); ac.agent->setContents(parseDisassembler(lines)); + } else { + QByteArray msg = response.data.findChild("msg").data(); + showStatusMessage(tr("Disassembler failed: %1").arg(_(msg)), 5000); } }