From a12ba22ed3869006e95f8fda9f9616e95bca27ee Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 7 Sep 2011 15:20:04 +0200 Subject: [PATCH] debugger: robustness when stepping through inaccessible memory Change-Id: I9cafda99986b653872e57f8223a0fe4621fd5136 Reviewed-on: http://codereview.qt-project.org/4478 Reviewed-by: hjk <qthjk@ovi.com> --- src/plugins/debugger/gdb/gdbengine.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 2f2479d4f1f..5a44d0767d5 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1790,6 +1790,8 @@ void GdbEngine::handleExecuteContinue(const GdbResponse &response) QTC_ASSERT(state() == InferiorStopOk, qDebug() << state()); showStatusMessage(tr("Stopped."), 5000); reloadStack(true); + } else if (msg.startsWith("Cannot access memory at address")) { + // Happens on single step on ARM prolog and epilogs. } else if (msg.startsWith("\"finish\" not meaningful in the outermost frame")) { notifyInferiorRunFailed(); if (isDying()) @@ -2075,7 +2077,8 @@ void GdbEngine::handleExecuteStep(const GdbResponse &response) } QByteArray msg = response.data.findChild("msg").data(); if (msg.startsWith("Cannot find bounds of current function") - || msg.contains("Error accessing memory address")) { + || msg.contains("Error accessing memory address") + || msg.startsWith("Cannot access memory at address")) { // On S40: "40^error,msg="Warning:\nCannot insert breakpoint -39.\n" //" Error accessing memory address 0x11673fc: Input/output error.\n" notifyInferiorRunFailed(); -- GitLab