aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/debuggerrunner.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2010-06-22 15:14:44 +0200
committerhjk <[email protected]>2010-06-22 15:14:44 +0200
commitc5c0dc76a0409cd6030881943beb99c299defdab (patch)
tree641d95725d7dc354dd4cf9f77800e229bf003bf6 /src/plugins/debugger/debuggerrunner.cpp
parentb01a622fa3f496791165001383b229eb7737efab (diff)
debugger: restore session breakpoints if RunControl finishes
Diffstat (limited to 'src/plugins/debugger/debuggerrunner.cpp')
-rw-r--r--src/plugins/debugger/debuggerrunner.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index a0f2c36a58f..e6d7bf36ecf 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -209,6 +209,15 @@ DebuggerRunControl::DebuggerRunControl(RunConfiguration *runConfiguration)
m_enabledEngines = AllEngineTypes;
}
+DebuggerRunControl::~DebuggerRunControl()
+{
+ disconnect();
+ DebuggerEngine *engine = m_engine;
+ m_engine = 0;
+ engine->disconnect();
+ delete engine;
+}
+
static DebuggerEngineType engineForToolChain(int toolChainType)
{
switch (toolChainType) {
@@ -372,11 +381,6 @@ void DebuggerRunControl::createEngine(const DebuggerStartParameters &sp)
}
}
-DebuggerRunControl::~DebuggerRunControl()
-{
- delete m_engine;
-}
-
QString DebuggerRunControl::displayName() const
{
QTC_ASSERT(m_engine, return QString());
@@ -481,6 +485,7 @@ void DebuggerRunControl::handleStarted()
void DebuggerRunControl::handleFinished()
{
+ engine()->handleFinished();
plugin()->runControlFinished(this);
}