From 4202b94dbfe9133ecdabaafae98f73f451f96f1a Mon Sep 17 00:00:00 2001 From: hjk <hjk121@nokiamail.com> Date: Tue, 11 Mar 2014 15:49:34 +0100 Subject: [PATCH] Debugger: Let creator trigger the locals update also with LLDB Makes the code path more similar to the GDB side and allows skipping register refreshs when the view is invisible. Change-Id: Ia9210ee1709dbc5c9c7a6870bf8a54484261fee0 Reviewed-by: Christian Stenger <christian.stenger@digia.com> --- share/qtcreator/debugger/lldbbridge.py | 3 --- src/plugins/debugger/lldb/lldbengine.cpp | 6 +++++- src/plugins/debugger/lldb/lldbengine.h | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 7ae50e9a374..56a8c09b31a 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1281,8 +1281,6 @@ class Dumper(DumperBase): self.reportStackTop() self.reportThreads() self.reportLocation() - self.reportVariables() - self.reportRegisters() self.reportChangedBreakpoints() elif type == lldb.SBProcess.eBroadcastBitInterrupt: pass @@ -1556,7 +1554,6 @@ class Dumper(DumperBase): state = self.process.GetState() if state == lldb.eStateStopped: self.reportStackPosition() - self.reportVariables() def selectThread(self, args): self.process.SetSelectedThreadByID(args['id']) diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index d2bad378b14..2589063fff8 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -320,7 +320,6 @@ void LldbEngine::setupInferior() } runCommand(cmd); - updateLocals(); // update display options } void LldbEngine::runEngine() @@ -493,6 +492,8 @@ void LldbEngine::activateFrame(int frameIndex) cmd.arg("thread", threadsHandler()->currentThread().raw()); cmd.arg("stacklimit", limit); runCommand(cmd); + + updateAll(); } void LldbEngine::selectThread(ThreadId threadId) @@ -872,6 +873,7 @@ bool LldbEngine::setToolTipExpression(const QPoint &mousePos, void LldbEngine::updateAll() { + reloadRegisters(); updateLocals(); } @@ -1181,6 +1183,8 @@ void LldbEngine::refreshState(const GdbMi &reportedState) if (m_continueAtNextSpontaneousStop) { m_continueAtNextSpontaneousStop = false; continueInferior(); + } else { + updateAll(); } } else if (newState == "inferiorstopok") notifyInferiorStopOk(); diff --git a/src/plugins/debugger/lldb/lldbengine.h b/src/plugins/debugger/lldb/lldbengine.h index df6c132ed1f..3d43532d915 100644 --- a/src/plugins/debugger/lldb/lldbengine.h +++ b/src/plugins/debugger/lldb/lldbengine.h @@ -184,7 +184,6 @@ private: typedef void (LldbEngine::*LldbCommandContinuation)(); - void handleStop(const QByteArray &response); void handleListLocals(const QByteArray &response); void handleListModules(const QByteArray &response); void handleListSymbols(const QByteArray &response); -- GitLab