Commit 40b64132 authored by Christian Stenger's avatar Christian Stenger

Debugger: Fix crash on close while debugging

Task-number: QTCREATORBUG-15987
Change-Id: I510add216ec16c0c6622870f26c68c16e99769ed
Reviewed-by: default avatarhjk <hjk@theqtcompany.com>
parent 27063480
......@@ -2502,6 +2502,8 @@ void DebuggerPluginPrivate::setInitialState()
void DebuggerPluginPrivate::updateState(DebuggerEngine *engine)
{
if (m_shuttingDown)
return;
QTC_ASSERT(engine, return);
QTC_ASSERT(m_watchersView->model(), return);
QTC_ASSERT(m_returnView->model(), return);
......@@ -2647,6 +2649,8 @@ void DebuggerPluginPrivate::updateState(DebuggerEngine *engine)
void DebuggerPluginPrivate::updateDebugActions()
{
if (m_shuttingDown)
return;
//if we're currently debugging the actions are controlled by engine
if (m_currentEngine->state() != DebuggerNotReady)
return;
......@@ -2775,6 +2779,8 @@ QTreeView *inspectorView()
void DebuggerPluginPrivate::showMessage(const QString &msg, int channel, int timeout)
{
if (m_shuttingDown)
return;
//qDebug() << "PLUGIN OUTPUT: " << channel << msg;
QTC_ASSERT(m_logWindow, return);
switch (channel) {
......
......@@ -232,8 +232,11 @@ bool DebuggerRunControl::promptToStop(bool *optionalPrompt) const
"Terminating the session in the current"
" state can leave the target in an inconsistent state."
" Would you still like to terminate it?");
return showPromptToStopDialog(tr("Close Debugging Session"), question,
QString(), QString(), optionalPrompt);
bool result = showPromptToStopDialog(tr("Close Debugging Session"), question,
QString(), QString(), optionalPrompt);
if (result)
disconnect(this);
return result;
}
RunControl::StopResult DebuggerRunControl::stop()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment