From 56053abbe8c7be4e6a0aa58843ebddd06eedcae5 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Date: Wed, 28 Oct 2009 20:05:11 +0100
Subject: [PATCH] in fact, older gdbs don't send *stopped after attaching

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

diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp
index 0803d3a5f53..4c0968233f2 100644
--- a/src/plugins/debugger/gdb/attachgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp
@@ -78,7 +78,16 @@ void AttachGdbAdapter::startInferior()
 void AttachGdbAdapter::handleAttach(const GdbResponse &response)
 {
     if (response.resultClass == GdbResultDone) {
-        QTC_ASSERT(state() == InferiorStopped, qDebug() << state());
+        // We don't know the exact 6.8.50 build where gdb started emitting
+        // *stopped here, so allow for some slack.
+        if (m_engine->m_gdbVersion < 60850) {
+            QTC_ASSERT(state() == InferiorStarting, qDebug() << state());
+            setState(InferiorStopped);
+        } else if (m_engine->m_gdbVersion < 70000 && state() == InferiorStarting) {
+            setState(InferiorStopped);
+        } else {
+            QTC_ASSERT(state() == InferiorStopped, qDebug() << state());
+        }
         debugMessage(_("INFERIOR ATTACHED"));
         showStatusMessage(msgAttachedToStoppedInferior());
         emit inferiorPrepared();
-- 
GitLab