diff options
-rw-r--r-- | src/plugins/debugger/cdb/cdbengine.cpp | 13 | ||||
-rw-r--r-- | src/plugins/debugger/cdb/cdbengine.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index 51585d35b6..a430e3e102 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -954,6 +954,19 @@ void CdbEngine::shutdownEngine() interruptInferior(); } +void CdbEngine::abortDebugger() +{ + if (targetState() == DebuggerFinished) { + // We already tried. Try harder. + showMessage(QLatin1String("ABORTING DEBUGGER. SECOND TIME.")); + m_process.kill(); + } else { + // Be friendly the first time. This will change targetState(). + showMessage(QLatin1String("ABORTING DEBUGGER. FIRST TIME.")); + quitDebugger(); + } +} + void CdbEngine::processFinished() { if (debug) diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h index 6fbc2b7afa..33b92042c2 100644 --- a/src/plugins/debugger/cdb/cdbengine.h +++ b/src/plugins/debugger/cdb/cdbengine.h @@ -84,6 +84,7 @@ public: virtual void runEngine(); virtual void shutdownInferior(); virtual void shutdownEngine(); + virtual void abortDebugger(); virtual void detachDebugger(); virtual void updateWatchData(const WatchData &data, const WatchUpdateFlags & flags = WatchUpdateFlags()); |