diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp index 484828d2a1af9669f7330a623bbaaf39b789afae..e6325deb61df3edba6f62ecbde97cd33b779d2ee 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 979d049cc0dce591c80dd0a55c2a59aa31e72d0c..b0ddd2d7b52b9930fb726e20a170c51b2221570d 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 1372c47005817fd62dbac432be318a9d3ff44507..f4d2576e85d7eebe6bb471afc22f019617ded011 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 dada8205da7e537ad6f6651c61853230ccc99f21..a3e063e31668168007dbb7ab7ca5314817b70399 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 5d21af78816607d6661baab2d6a9dc6cfef46599..b1395f6439c2d41b3875be0d7c3784774e4b0e5e 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 27b0031cbf7829a1d27ad30be004e2e3bb09efa2..d6fdb3381a62f79a88f51db00a7648fbbf2fdfb3 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 3a7c37d65487dda454c4a6cc4ac8263af7b98c6d..bd32a388104eaa5f54a8f9cdbfef5c424a89a6e0 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; /*