From dfe15b5310dd731e93fc35c5fa5cf09f6b8d87cd Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 7 Sep 2010 10:59:40 +0200 Subject: [PATCH] debugger: second attempt at silencing the watchdog after gdb-exit --- src/plugins/debugger/gdb/gdbengine.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 19890fc0acc..38e2f75a1c7 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -791,6 +791,8 @@ void GdbEngine::flushCommand(const GdbCommand &cmd0) return; } + QTC_ASSERT(gdbProc()->state() == QProcess::Running, /**/); + ++currentToken(); GdbCommand cmd = cmd0; cmd.postTime = QTime::currentTime(); @@ -809,7 +811,7 @@ void GdbEngine::flushCommand(const GdbCommand &cmd0) // sent and a response could be retrieved. We don't want the watchdog // to bark in that case since the only possible outcome is a dead // process anyway. - if (cmd.command != "-gdb-exit") + if (!cmd.command.endsWith("-gdb-exit")) m_commandTimer->start(); //if (cmd.flags & LosesChild) @@ -1665,7 +1667,13 @@ void GdbEngine::notifyAdapterShutdownOk() showMessage(_("INITIATE GDBENGINE SHUTDOWN IN STATE %1, PROC: %2") .arg(lastGoodState()).arg(gdbProc()->state())); m_commandsDoneCallback = 0; - postCommand("-gdb-exit", GdbEngine::ExitRequest, CB(handleGdbExit)); + if (gdbProc()->state() == QProcess::Running) { + postCommand("-gdb-exit", GdbEngine::ExitRequest, CB(handleGdbExit)); + } else { + showMessage(_("GDB NOT REALLY RUNNING; KILLING IT")); + gdbProc()->kill(); + notifyEngineShutdownFailed(); + } } void GdbEngine::handleGdbExit(const GdbResponse &response) -- GitLab