forked from qt-creator/qt-creator
Debugger: Fix crash on close while debugging
Task-number: QTCREATORBUG-15987 Change-Id: I510add216ec16c0c6622870f26c68c16e99769ed Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
@@ -2502,6 +2502,8 @@ void DebuggerPluginPrivate::setInitialState()
|
|||||||
|
|
||||||
void DebuggerPluginPrivate::updateState(DebuggerEngine *engine)
|
void DebuggerPluginPrivate::updateState(DebuggerEngine *engine)
|
||||||
{
|
{
|
||||||
|
if (m_shuttingDown)
|
||||||
|
return;
|
||||||
QTC_ASSERT(engine, return);
|
QTC_ASSERT(engine, return);
|
||||||
QTC_ASSERT(m_watchersView->model(), return);
|
QTC_ASSERT(m_watchersView->model(), return);
|
||||||
QTC_ASSERT(m_returnView->model(), return);
|
QTC_ASSERT(m_returnView->model(), return);
|
||||||
@@ -2647,6 +2649,8 @@ void DebuggerPluginPrivate::updateState(DebuggerEngine *engine)
|
|||||||
|
|
||||||
void DebuggerPluginPrivate::updateDebugActions()
|
void DebuggerPluginPrivate::updateDebugActions()
|
||||||
{
|
{
|
||||||
|
if (m_shuttingDown)
|
||||||
|
return;
|
||||||
//if we're currently debugging the actions are controlled by engine
|
//if we're currently debugging the actions are controlled by engine
|
||||||
if (m_currentEngine->state() != DebuggerNotReady)
|
if (m_currentEngine->state() != DebuggerNotReady)
|
||||||
return;
|
return;
|
||||||
@@ -2775,6 +2779,8 @@ QTreeView *inspectorView()
|
|||||||
|
|
||||||
void DebuggerPluginPrivate::showMessage(const QString &msg, int channel, int timeout)
|
void DebuggerPluginPrivate::showMessage(const QString &msg, int channel, int timeout)
|
||||||
{
|
{
|
||||||
|
if (m_shuttingDown)
|
||||||
|
return;
|
||||||
//qDebug() << "PLUGIN OUTPUT: " << channel << msg;
|
//qDebug() << "PLUGIN OUTPUT: " << channel << msg;
|
||||||
QTC_ASSERT(m_logWindow, return);
|
QTC_ASSERT(m_logWindow, return);
|
||||||
switch (channel) {
|
switch (channel) {
|
||||||
|
@@ -232,8 +232,11 @@ bool DebuggerRunControl::promptToStop(bool *optionalPrompt) const
|
|||||||
"Terminating the session in the current"
|
"Terminating the session in the current"
|
||||||
" state can leave the target in an inconsistent state."
|
" state can leave the target in an inconsistent state."
|
||||||
" Would you still like to terminate it?");
|
" Would you still like to terminate it?");
|
||||||
return showPromptToStopDialog(tr("Close Debugging Session"), question,
|
bool result = showPromptToStopDialog(tr("Close Debugging Session"), question,
|
||||||
QString(), QString(), optionalPrompt);
|
QString(), QString(), optionalPrompt);
|
||||||
|
if (result)
|
||||||
|
disconnect(this);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
RunControl::StopResult DebuggerRunControl::stop()
|
RunControl::StopResult DebuggerRunControl::stop()
|
||||||
|
Reference in New Issue
Block a user