forked from qt-creator/qt-creator
Debugger: Directly tell memory agents about finishing
Change-Id: I79a718f45835a709daa37dd785ed718c3743d77e Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com> Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
@@ -1265,6 +1265,7 @@ void DebuggerEngine::setState(DebuggerState state, bool forced)
|
|||||||
foreach (Breakpoint bp, breakHandler()->engineBreakpoints(this))
|
foreach (Breakpoint bp, breakHandler()->engineBreakpoints(this))
|
||||||
bp.notifyBreakpointReleased();
|
bp.notifyBreakpointReleased();
|
||||||
DebuggerToolTipManager::deregisterEngine(this);
|
DebuggerToolTipManager::deregisterEngine(this);
|
||||||
|
d->m_memoryAgent.handleDebuggerFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
showMessage(msg, LogDebug);
|
showMessage(msg, LogDebug);
|
||||||
|
|||||||
@@ -88,8 +88,6 @@ MemoryAgent::MemoryAgent(DebuggerEngine *engine)
|
|||||||
: QObject(engine), m_engine(engine)
|
: QObject(engine), m_engine(engine)
|
||||||
{
|
{
|
||||||
QTC_CHECK(engine);
|
QTC_CHECK(engine);
|
||||||
connect(engine, &DebuggerEngine::stateChanged,
|
|
||||||
this, &MemoryAgent::engineStateChanged);
|
|
||||||
connect(engine, &DebuggerEngine::stackFrameCompleted,
|
connect(engine, &DebuggerEngine::stackFrameCompleted,
|
||||||
this, &MemoryAgent::updateContents);
|
this, &MemoryAgent::updateContents);
|
||||||
}
|
}
|
||||||
@@ -254,19 +252,13 @@ bool MemoryAgent::hasVisibleEditor() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemoryAgent::engineStateChanged(Debugger::DebuggerState s)
|
void MemoryAgent::handleDebuggerFinished()
|
||||||
{
|
{
|
||||||
switch (s) {
|
foreach (const QPointer<IEditor> &editor, m_editors) {
|
||||||
case DebuggerFinished:
|
if (editor) { // Prevent triggering updates, etc.
|
||||||
closeViews();
|
MemoryView::setBinEditorReadOnly(editor->widget(), true);
|
||||||
foreach (const QPointer<IEditor> &editor, m_editors)
|
editor->widget()->disconnect(this);
|
||||||
if (editor) { // Prevent triggering updates, etc.
|
}
|
||||||
MemoryView::setBinEditorReadOnly(editor->widget(), true);
|
|
||||||
editor->widget()->disconnect(this);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ public slots:
|
|||||||
void updateContents();
|
void updateContents();
|
||||||
void closeEditors();
|
void closeEditors();
|
||||||
void closeViews();
|
void closeViews();
|
||||||
|
void handleDebuggerFinished();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void fetchLazyData(quint64 block);
|
void fetchLazyData(quint64 block);
|
||||||
@@ -108,7 +109,6 @@ private slots:
|
|||||||
void handleDataChanged(quint64 address, const QByteArray &data);
|
void handleDataChanged(quint64 address, const QByteArray &data);
|
||||||
void handleWatchpointRequest(quint64 address, uint size);
|
void handleWatchpointRequest(quint64 address, uint size);
|
||||||
void updateMemoryView(quint64 address, quint64 length);
|
void updateMemoryView(quint64 address, quint64 length);
|
||||||
void engineStateChanged(Debugger::DebuggerState s);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void connectBinEditorWidget(QWidget *w);
|
void connectBinEditorWidget(QWidget *w);
|
||||||
|
|||||||
Reference in New Issue
Block a user