OSDN Git Service

-gdb-exit has a special return code as well
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Tue, 13 Oct 2009 15:13:19 +0000 (17:13 +0200)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Tue, 13 Oct 2009 18:43:13 +0000 (20:43 +0200)
src/plugins/debugger/gdb/attachgdbadapter.cpp
src/plugins/debugger/gdb/coregdbadapter.cpp
src/plugins/debugger/gdb/gdbengine.cpp
src/plugins/debugger/gdb/gdbengine.h
src/plugins/debugger/gdb/plaingdbadapter.cpp
src/plugins/debugger/gdb/remotegdbadapter.cpp
src/plugins/debugger/gdb/trkgdbadapter.cpp

index 484828d..e6325de 100644 (file)
@@ -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:
index 979d049..b0ddd2d 100644 (file)
@@ -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:
index 1372c47..f4d2576 100644 (file)
@@ -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);
index dada820..a3e063e 100644 (file)
@@ -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)
 
index 5d21af7..b1395f6 100644 (file)
@@ -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:
index 27b0031..d6fdb33 100644 (file)
@@ -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;
 
     }
index 3a7c37d..bd32a38 100644 (file)
@@ -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;
 
 /*