summaryrefslogtreecommitdiff
path: root/share/qtcreator/debugger/lldbbridge.py
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-02-05 17:03:51 +0100
committerhjk <hjk121@nokiamail.com>2014-02-06 14:32:46 +0100
commit282e688db2b107e79d89fb2f2f934cd91294607c (patch)
treebd866b52bf4819c55713ec6f519f70b493167eaa /share/qtcreator/debugger/lldbbridge.py
parentcbf760686f601e54ced0a97c22fed8873e8c8ad5 (diff)
downloadqt-creator-282e688db2b107e79d89fb2f2f934cd91294607c.tar.gz
Debugger: Fix "Jump to Line" for LLDB
Change-Id: I2fa58fd0db85063146ed9dc09351844924e22bdc 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.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 450016f66d..0635daf573 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -1466,8 +1466,23 @@ class Dumper(DumperBase):
self.thread.StepOverUntil(file, line)
self.reportData()
- def executeJumpToLine(self):
- self.report('error={msg="Not implemented"},state="stopped"')
+ def executeJumpToLine(self, args):
+ frame = self.currentFrame()
+ self.report('state="stopped"')
+ if not frame:
+ self.report('error={msg="No frame"}')
+ return
+ bp = self.target.BreakpointCreateByLocation(
+ str(args["file"]), int(args["line"]))
+ isWatch = isinstance(bp, lldb.SBWatchpoint)
+ if bp.GetNumLocations() == 0:
+ self.report('error={msg="No location implemented"}')
+ self.target.BreakpointDelete(bp.GetID())
+ return
+ loc = bp.GetLocationAtIndex(0)
+ self.target.BreakpointDelete(bp.GetID())
+ frame.SetPC(loc.GetLoadAddress())
+ self.reportData()
def breakList(self):
result = lldb.SBCommandReturnObject()