diff options
author | hjk <hjk121@nokiamail.com> | 2014-02-05 17:03:51 +0100 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-02-06 14:32:46 +0100 |
commit | 282e688db2b107e79d89fb2f2f934cd91294607c (patch) | |
tree | bd866b52bf4819c55713ec6f519f70b493167eaa /share/qtcreator/debugger/lldbbridge.py | |
parent | cbf760686f601e54ced0a97c22fed8873e8c8ad5 (diff) | |
download | qt-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.py | 19 |
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() |