From 19b9f1404f08cf9203ec9aeb643d52d7a356078d Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Wed, 13 Jan 2010 10:31:03 +0100
Subject: [PATCH] debugger: extra 'continue' for stops delivered by new symbian
 gdb

---
 src/plugins/debugger/gdb/gdbengine.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 35022865c9d..1b8ec1823b6 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1336,6 +1336,17 @@ void GdbEngine::handleStop1(const GdbResponse &response)
 
 void GdbEngine::handleStop1(const GdbMi &data)
 {
+    QByteArray reason = data.findChild("reason").data();
+
+    if (m_gdbAdapter->isTrkAdapter()
+            && reason == "signal-received"
+            && data.findChild("signal-name").data() == "SIGTRAP") {
+        // Caused by "library load" message.
+        debugMessage(_("INTERNAL CONTINUE"));
+        continueInferiorInternal();
+        return;
+    }
+
     if (m_modulesListOutdated)
         reloadModulesInternal(); // This is for display only
     if (m_sourcesListOutdated && theDebuggerBoolSetting(UsePreciseBreakpoints))
@@ -1350,7 +1361,6 @@ void GdbEngine::handleStop1(const GdbMi &data)
             && manager()->breakHandler()->size() > 0)
             reloadBreakListInternal();
 
-    QByteArray reason = data.findChild("reason").data();
     if (reason == "breakpoint-hit") {
         showStatusMessage(tr("Stopped at breakpoint."));
     } else {
-- 
GitLab