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