From fbe6f968694ffdaf1d47a7eaf2e1c4e8fe16dc86 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Tue, 12 Oct 2010 16:05:38 +0200
Subject: [PATCH] debugger: Do not automatically kill gdb on internal errors.

This improves overall debugging experience after some "mostly harmless" errors.

Reviewed-by: Friedemann Kleint
Task-number: QTCREATORBUG-2004
---
 src/plugins/debugger/gdb/gdbengine.cpp | 4 ++++
 src/plugins/debugger/sessionengine.cpp | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 7a1d9be0d33..acfb96ec820 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -4155,6 +4155,10 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
     postCommand("set width 0");
     postCommand("set height 0");
 
+    // Work around http://bugreports.qt.nokia.com/browse/QTCREATORBUG-2004
+    postCommand("maintenance set internal-warning quit no");
+    postCommand("maintenance set internal-error quit no");
+
     if (m_isMacGdb) {
         postCommand("-gdb-set inferior-auto-start-cfm off");
         postCommand("-gdb-set sharedLibrary load-rules "
diff --git a/src/plugins/debugger/sessionengine.cpp b/src/plugins/debugger/sessionengine.cpp
index a822df35229..3aa66dc25cd 100644
--- a/src/plugins/debugger/sessionengine.cpp
+++ b/src/plugins/debugger/sessionengine.cpp
@@ -68,7 +68,9 @@ void SessionEngine::saveSessionData()
 unsigned SessionEngine::debuggerCapabilities() const
 {
     return DebuggerEngine::debuggerCapabilities()
-            | AddWatcherCapability | WatchpointCapability;
+            | AddWatcherCapability
+            | BreakOnThrowAndCatchCapability
+            | WatchpointCapability;
 }
 
 } // namespace Internal
-- 
GitLab