summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/gdb/attachgdbadapter.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-10-28 20:05:11 +0100
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-10-29 15:34:00 +0100
commit56053abbe8c7be4e6a0aa58843ebddd06eedcae5 (patch)
tree3b80a83f16a79116e53734e9134552ab0e2328ac /src/plugins/debugger/gdb/attachgdbadapter.cpp
parentad3d1c5887c45ccd40ca35be86a65f38937e733a (diff)
downloadqt-creator-56053abbe8c7be4e6a0aa58843ebddd06eedcae5.tar.gz
in fact, older gdbs don't send *stopped after attaching
Diffstat (limited to 'src/plugins/debugger/gdb/attachgdbadapter.cpp')
-rw-r--r--src/plugins/debugger/gdb/attachgdbadapter.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp
index 0803d3a5f5..4c0968233f 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();