From 5fd1e3c454f6f65eb0b366051551977213dff699 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Mon, 4 Jan 2010 14:11:07 +0100 Subject: [PATCH] properly decode messages from gdb ... using fromLocal8Bit instead of fromLatin1. of course the localized messages pose a "challenge" for the various workarounds which parse them ... Task-number: QTCREATORBUG-504 --- src/plugins/debugger/gdb/attachgdbadapter.cpp | 2 +- src/plugins/debugger/gdb/coregdbadapter.cpp | 4 ++-- src/plugins/debugger/gdb/gdbengine.cpp | 12 +++++++----- src/plugins/debugger/gdb/plaingdbadapter.cpp | 4 ++-- src/plugins/debugger/gdb/remotegdbadapter.cpp | 5 +++-- src/plugins/debugger/gdb/termgdbadapter.cpp | 2 +- src/plugins/debugger/gdb/trkgdbadapter.cpp | 2 +- 7 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp index 0f6b50b6bd7..2810ef23d97 100644 --- a/src/plugins/debugger/gdb/attachgdbadapter.cpp +++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp @@ -85,7 +85,7 @@ void AttachGdbAdapter::handleAttach(const GdbResponse &response) emit inferiorPrepared(); m_engine->updateAll(); } else { - QString msg = __(response.data.findChild("msg").data()); + QString msg = QString::fromLocal8Bit(response.data.findChild("msg").data()); emit inferiorStartFailed(msg); } } diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp index ee0304208be..e64abf9af31 100644 --- a/src/plugins/debugger/gdb/coregdbadapter.cpp +++ b/src/plugins/debugger/gdb/coregdbadapter.cpp @@ -108,7 +108,7 @@ void CoreGdbAdapter::handleFileExecAndSymbols(const GdbResponse &response) showStatusMessage(tr("Symbols found.")); } else { QString msg = tr("Loading symbols from \"%1\" failed:\n").arg(m_executable) - + __(response.data.findChild("msg").data()); + + QString::fromLocal8Bit(response.data.findChild("msg").data()); showMessageBox(QMessageBox::Warning, tr("Error Loading Symbols"), msg); } loadCoreFile(); @@ -160,7 +160,7 @@ void CoreGdbAdapter::handleTargetCore(const GdbResponse &response) m_engine->updateAll(); } else { QString msg = tr("Attach to core \"%1\" failed:\n").arg(startParameters().coreFile) - + __(response.data.findChild("msg").data()); + + QString::fromLocal8Bit(response.data.findChild("msg").data()); emit inferiorStartFailed(msg); } } diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index bd5d6c5ee71..9a1e9da89ea 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1518,7 +1518,8 @@ void GdbEngine::handleInferiorShutdown(const GdbResponse &response) } else { debugMessage(_("INFERIOR SHUTDOWN FAILED")); setState(InferiorShutdownFailed); - QString msg = m_gdbAdapter->msgInferiorStopFailed(_(response.data.findChild("msg").data())); + QString msg = m_gdbAdapter->msgInferiorStopFailed( + QString::fromLocal8Bit(response.data.findChild("msg").data())); showMessageBox(QMessageBox::Critical, tr("Inferior shutdown failed"), msg); } shutdown(); // re-iterate... @@ -1531,7 +1532,8 @@ void GdbEngine::handleGdbExit(const GdbResponse &response) m_commandsDoneCallback = 0; // don't set state here, this will be handled in handleGdbFinished() } else { - QString msg = m_gdbAdapter->msgGdbStopFailed(_(response.data.findChild("msg").data())); + QString msg = m_gdbAdapter->msgGdbStopFailed( + QString::fromLocal8Bit(response.data.findChild("msg").data())); debugMessage(_("GDB WON'T EXIT (%1); KILLING IT").arg(msg)); m_gdbProc.kill(); } @@ -4229,7 +4231,7 @@ void GdbEngine::handleFetchDisassemblerByLine(const GdbResponse &response) if (msg == "mi_cmd_disassemble: Invalid line number") fetchDisassemblerByAddress(ac.agent, true); else - showStatusMessage(tr("Disassembler failed: %1").arg(_(msg)), 5000); + showStatusMessage(tr("Disassembler failed: %1").arg(QString::fromLocal8Bit(msg)), 5000); } } @@ -4254,7 +4256,7 @@ void GdbEngine::handleFetchDisassemblerByAddress1(const GdbResponse &response) } 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); + showStatusMessage(tr("Disassembler failed: %1").arg(QString::fromLocal8Bit(msg)), 5000); } } @@ -4268,7 +4270,7 @@ void GdbEngine::handleFetchDisassemblerByAddress0(const GdbResponse &response) ac.agent->setContents(parseDisassembler(lines)); } else { QByteArray msg = response.data.findChild("msg").data(); - showStatusMessage(tr("Disassembler failed: %1").arg(_(msg)), 5000); + showStatusMessage(tr("Disassembler failed: %1").arg(QString::fromLocal8Bit(msg)), 5000); } } diff --git a/src/plugins/debugger/gdb/plaingdbadapter.cpp b/src/plugins/debugger/gdb/plaingdbadapter.cpp index c0e0908666d..a4c0d34d86b 100644 --- a/src/plugins/debugger/gdb/plaingdbadapter.cpp +++ b/src/plugins/debugger/gdb/plaingdbadapter.cpp @@ -121,7 +121,7 @@ void PlainGdbAdapter::handleFileExecAndSymbols(const GdbResponse &response) emit inferiorPrepared(); } else { QString msg = tr("Starting executable failed:\n") + - __(response.data.findChild("msg").data()); + QString::fromLocal8Bit(response.data.findChild("msg").data()); emit inferiorStartFailed(msg); } } @@ -163,7 +163,7 @@ void PlainGdbAdapter::handleExecRun(const GdbResponse &response) showStatusMessage(msgInferiorStarted()); } else { QTC_ASSERT(state() == InferiorRunningRequested, qDebug() << state()); - const QByteArray &msg = response.data.findChild("msg").data(); + const QString &msg = QString::fromLocal8Bit(response.data.findChild("msg").data()); //QTC_ASSERT(status() == InferiorRunning, /**/); //interruptInferior(); emit inferiorStartFailed(msg); diff --git a/src/plugins/debugger/gdb/remotegdbadapter.cpp b/src/plugins/debugger/gdb/remotegdbadapter.cpp index 4550359956a..b144c146209 100644 --- a/src/plugins/debugger/gdb/remotegdbadapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbadapter.cpp @@ -203,7 +203,7 @@ void RemoteGdbAdapter::handleFileExecAndSymbols(const GdbResponse &response) CB(handleTargetRemote)); } else { QString msg = tr("Starting remote executable failed:\n"); - msg += __(response.data.findChild("msg").data()); + msg += QString::fromLocal8Bit(response.data.findChild("msg").data()); emit inferiorStartFailed(msg); } } @@ -219,7 +219,8 @@ void RemoteGdbAdapter::handleTargetRemote(const GdbResponse &record) emit inferiorPrepared(); } else { // 16^error,msg="hd:5555: Connection timed out." - QString msg = msgConnectRemoteServerFailed(__(record.data.findChild("msg").data())); + QString msg = msgConnectRemoteServerFailed( + QString::fromLocal8Bit(record.data.findChild("msg").data())); emit inferiorStartFailed(msg); } } diff --git a/src/plugins/debugger/gdb/termgdbadapter.cpp b/src/plugins/debugger/gdb/termgdbadapter.cpp index 613aaa79f30..53378a42053 100644 --- a/src/plugins/debugger/gdb/termgdbadapter.cpp +++ b/src/plugins/debugger/gdb/termgdbadapter.cpp @@ -143,7 +143,7 @@ void TermGdbAdapter::handleStubAttached(const GdbResponse &response) m_engine->postCommand(_("-stack-list-frames 0 0"), CB(handleEntryPoint)); #endif } else if (response.resultClass == GdbResultError) { - QString msg = _(response.data.findChild("msg").data()); + QString msg = QString::fromLocal8Bit(response.data.findChild("msg").data()); emit inferiorStartFailed(msg); } } diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp index 3eab98ab2e7..5e95384f4e6 100644 --- a/src/plugins/debugger/gdb/trkgdbadapter.cpp +++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp @@ -1628,7 +1628,7 @@ void TrkGdbAdapter::handleTargetRemote(const GdbResponse &record) emit inferiorPrepared(); } else { QString msg = tr("Connecting to TRK server adapter failed:\n") - + _(record.data.findChild("msg").data()); + + QString::fromLocal8Bit(record.data.findChild("msg").data()); emit inferiorStartFailed(msg); } } -- GitLab