summaryrefslogtreecommitdiff
path: root/share/qtcreator/debugger/lldbbridge.py
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-02-10 17:38:58 +0100
committerhjk <hjk121@nokiamail.com>2014-02-11 10:44:54 +0100
commita19353674c34e3cb3ca40bcb6c7fb7fb7e289770 (patch)
treecfd02dee9ed829c3c0fdc79d822d6510830c7299 /share/qtcreator/debugger/lldbbridge.py
parentc7f80c2c00ad71a6f824de357cdc7e8187f01390 (diff)
downloadqt-creator-a19353674c34e3cb3ca40bcb6c7fb7fb7e289770.tar.gz
Debugger: Stop process before manipulating breakpoints with LLDB
This seems to be a LLDB/Linux specific problem. Task-number: QTCREATORBUG-11441 Change-Id: I390e17737a63f53dc1d1e2060ef87a3ad94fedf5 Reviewed-by: Christian Stenger <christian.stenger@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'share/qtcreator/debugger/lldbbridge.py')
-rw-r--r--share/qtcreator/debugger/lldbbridge.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index d5c1c3ea50..464c14c076 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -31,6 +31,7 @@ import atexit
import inspect
import json
import os
+import platform
import re
import select
import sys
@@ -1388,6 +1389,13 @@ class Dumper(DumperBase):
return self.target.BreakpointDelete(id)
def handleBreakpoints(self, args):
+ # This seems to be only needed on Linux.
+ needStop = False
+ if self.process and platform.system() == "Linux":
+ needStop = self.process.GetState() != lldb.eStateStopped
+ if needStop:
+ error = self.process.Stop()
+
result = 'bkpts=['
for bp in args['bkpts']:
operation = bp['operation']
@@ -1407,6 +1415,10 @@ class Dumper(DumperBase):
result += '{operation="removed",modelid="%s"}' % bp["modelid"]
result += "]"
+
+ if needStop:
+ error = self.process.Continue()
+
self.report(result)
def listModules(self, args):