summaryrefslogtreecommitdiff
path: root/share/qtcreator/debugger/lldbbridge.py
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-03-19 12:08:25 +0100
committerhjk <hjk121@nokiamail.com>2014-03-19 12:57:07 +0100
commit05d7dd1bb908caa8bf4f31b5aaf9a2f33f0ca2b5 (patch)
treefda9d5d5a0fd5368d310afa63aa9233059ab0ecc /share/qtcreator/debugger/lldbbridge.py
parent1111c06aaccef2cad1d136b38c8c1ab48d0a5ddd (diff)
downloadqt-creator-05d7dd1bb908caa8bf4f31b5aaf9a2f33f0ca2b5.tar.gz
Debugger: Synchronize LLDB bridge output
Output coming from spontaneous events should not interfere with output produces by lengthy display generation. Change-Id: I2a9e4fa93db131cfdac4cb0eb613c0159214d8be Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Diffstat (limited to 'share/qtcreator/debugger/lldbbridge.py')
-rw-r--r--share/qtcreator/debugger/lldbbridge.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 6a6723d132..75314d99b0 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -227,6 +227,7 @@ class Dumper(DumperBase):
lldb.theDumper = self
+ self.outputLock = threading.Lock()
self.debugger = lldb.SBDebugger.Create()
#self.debugger.SetLoggingCallback(loggingCallback)
#Same as: self.debugger.HandleCommand("log enable lldb dyld step")
@@ -1056,7 +1057,12 @@ class Dumper(DumperBase):
with SubItem(self, child):
self.putItem(child)
- def reportVariables(self, _ = None):
+ def reportVariables(self, args = None):
+ with self.outputLock:
+ self.reportVariablesHelper(args)
+ sys.stdout.write("@\n")
+
+ def reportVariablesHelper(self, _ = None):
frame = self.currentFrame()
if frame is None:
return
@@ -1138,7 +1144,6 @@ class Dumper(DumperBase):
self.putItem(value)
self.put(']')
- self.report('')
def reportData(self, _ = None):
if self.process is None:
@@ -1167,7 +1172,8 @@ class Dumper(DumperBase):
self.report(result)
def report(self, stuff):
- sys.stdout.write(stuff + "@\n")
+ with self.outputLock:
+ sys.stdout.write(stuff + "@\n")
def reportStatus(self, msg):
self.report('statusmessage="%s"' % msg)