From 70f696d05610d7b49f37971d3f1ed38dee9f2222 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Tue, 13 Oct 2009 17:13:19 +0200 Subject: [PATCH] -gdb-exit has a special return code as well --- src/plugins/debugger/gdb/attachgdbadapter.cpp | 2 +- src/plugins/debugger/gdb/coregdbadapter.cpp | 2 +- src/plugins/debugger/gdb/gdbengine.cpp | 10 ++++++---- src/plugins/debugger/gdb/gdbengine.h | 3 ++- src/plugins/debugger/gdb/plaingdbadapter.cpp | 4 ++-- src/plugins/debugger/gdb/remotegdbadapter.cpp | 2 +- src/plugins/debugger/gdb/trkgdbadapter.cpp | 2 +- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp index 484828d2a1a..e6325deb61d 100644 --- a/src/plugins/debugger/gdb/attachgdbadapter.cpp +++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp @@ -130,7 +130,7 @@ void AttachGdbAdapter::shutdown() case InferiorShutDown: setState(AdapterShuttingDown); - m_engine->postCommand(_("-gdb-exit"), CB(handleExit)); + m_engine->postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleExit)); return; default: diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp index 979d049cc0d..b0ddd2d7b52 100644 --- a/src/plugins/debugger/gdb/coregdbadapter.cpp +++ b/src/plugins/debugger/gdb/coregdbadapter.cpp @@ -192,7 +192,7 @@ void CoreGdbAdapter::shutdown() case InferiorUnrunnable: case InferiorShutDown: setState(AdapterShuttingDown); - m_engine->postCommand(_("-gdb-exit"), CB(handleExit)); + m_engine->postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleExit)); return; default: diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 1372c470058..f4d2576e85d 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -803,10 +803,12 @@ void GdbEngine::handleResultRecord(const GdbResponse &response) responseWithCookie.cookie = cmd.cookie; if (response.resultClass != GdbResultError && - response.resultClass != ((cmd.flags & RunRequest) ? GdbResultRunning : GdbResultDone)) { - debugMessage(_("UNEXPECTED RESPONSE %1 TO COMMAND %2") - .arg(_(GdbResponse::stringFromResultClass(response.resultClass))) - .arg(cmd.command)); + response.resultClass != ((cmd.flags & RunRequest) ? GdbResultRunning : + (cmd.flags & ExitRequest) ? GdbResultExit : + GdbResultDone)) { + QString rsp = _(GdbResponse::stringFromResultClass(response.resultClass)); + qWarning() << "UNEXPECTED RESPONSE " << rsp << " TO COMMAND" << cmd.command << " AT " __FILE__ ":" STRINGIFY(__LINE__); + debugMessage(_("UNEXPECTED RESPONSE %1 TO COMMAND %2").arg(rsp).arg(cmd.command)); } else { if (cmd.callback) (this->*cmd.callback)(responseWithCookie); diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index dada8205da7..a3e063e3166 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -177,7 +177,8 @@ public: // otherwise the Qt flag macros are unhappy RebuildModel = 4, // Trigger model rebuild when no such commands are pending any more WatchUpdate = Discardable | RebuildModel, EmbedToken = 8, // Expand %1 in the command to the command token - RunRequest = 16 // Callback expect GdbResultRunning instead of GdbResultDone + RunRequest = 16, // Callback expect GdbResultRunning instead of GdbResultDone + ExitRequest = 32 // Callback expect GdbResultExit instead of GdbResultDone }; Q_DECLARE_FLAGS(GdbCommandFlags, GdbCommandFlag) diff --git a/src/plugins/debugger/gdb/plaingdbadapter.cpp b/src/plugins/debugger/gdb/plaingdbadapter.cpp index 5d21af78816..b1395f6439c 100644 --- a/src/plugins/debugger/gdb/plaingdbadapter.cpp +++ b/src/plugins/debugger/gdb/plaingdbadapter.cpp @@ -177,7 +177,7 @@ void PlainGdbAdapter::shutdown() case InferiorShutDown: setState(AdapterShuttingDown); - m_engine->postCommand(_("-gdb-exit"), CB(handleExit)); + m_engine->postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleExit)); return; /* @@ -192,7 +192,7 @@ void PlainGdbAdapter::shutdown() .arg(state())); m_gdbProc.kill(); } - m_engine->postCommand(_("-gdb-exit"), CB(handleExit)); + m_engine->postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleExit)); return; */ default: diff --git a/src/plugins/debugger/gdb/remotegdbadapter.cpp b/src/plugins/debugger/gdb/remotegdbadapter.cpp index 27b0031cbf7..d6fdb3381a6 100644 --- a/src/plugins/debugger/gdb/remotegdbadapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbadapter.cpp @@ -248,7 +248,7 @@ void RemoteGdbAdapter::shutdown() case InferiorStartFailed: case InferiorShutDown: setState(AdapterShuttingDown); - m_engine->postCommand(_("-gdb-exit"), CB(handleExit)); + m_engine->postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleExit)); return; } diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp index 3a7c37d6548..bd32a388104 100644 --- a/src/plugins/debugger/gdb/trkgdbadapter.cpp +++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp @@ -2015,7 +2015,7 @@ void TrkGdbAdapter::shutdown() case InferiorShutDown: setState(AdapterShuttingDown); cleanup(); - m_engine->postCommand(_("-gdb-exit"), CB(handleExit)); + m_engine->postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleExit)); return; /* -- GitLab