From 199dfbb4851ef62a665823910c7b4689a1a8afb6 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Date: Fri, 12 Jun 2009 17:34:34 +0200
Subject: [PATCH] fix gdb shutdown logic on gdb crash

Reviewed-by: hjk
---
 src/plugins/debugger/gdb/gdbengine.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 65f866b5831..130d4608b2b 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -205,14 +205,17 @@ void GdbEngine::initializeVariables()
 void GdbEngine::gdbProcError(QProcess::ProcessError error)
 {
     QString msg;
+    bool kill = true;
     switch (error) {
         case QProcess::FailedToStart:
+            kill = false;
             msg = tr("The Gdb process failed to start. Either the "
                 "invoked program '%1' is missing, or you may have insufficient "
                 "permissions to invoke the program.")
                 .arg(theDebuggerStringSetting(GdbLocation));
             break;
         case QProcess::Crashed:
+            kill = false;
             msg = tr("The Gdb process crashed some time after starting "
                 "successfully.");
             break;
@@ -238,7 +241,8 @@ void GdbEngine::gdbProcError(QProcess::ProcessError error)
     q->showStatusMessage(msg);
     QMessageBox::critical(q->mainWindow(), tr("Error"), msg);
     // act as if it was closed by the core
-    q->exitDebugger();
+    if (kill)
+        q->exitDebugger();
 }
 
 void GdbEngine::uploadProcError(QProcess::ProcessError error)
-- 
GitLab