diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index bcf70338f5bae95b4552995acd2174f3a21f93b4..229237004321706d3b545790f3b399caf7a0ac66 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1488,16 +1488,19 @@ class Dumper(DumperBase): else: self.reportData() - def executeJumpToLine(self, args): + def executeJumpToLocation(self, args): frame = self.currentFrame() self.report('state="stopped"') if not frame: self.reportStatus("No frame available.") self.reportLocation() return - bp = self.target.BreakpointCreateByLocation( - str(args["file"]), int(args["line"])) - isWatch = isinstance(bp, lldb.SBWatchpoint) + addr = args.get('address', 0) + if addr: + bp = self.target.BreakpointCreateByAddress(addr) + else: + bp = self.target.BreakpointCreateByLocation( + str(args['file']), int(args['line'])) if bp.GetNumLocations() == 0: self.target.BreakpointDelete(bp.GetID()) self.reportStatus("No target location found.") diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index a1a60a2b1ed1b132b4256b39b735cf2777ccb780..54ac32b28e432cbb5fd66146619599b5d3ebaddd 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -378,8 +378,11 @@ void LldbEngine::executeJumpToLine(const ContextData &data) { resetLocation(); notifyInferiorRunRequested(); - runCommand(Command("executeJumpToLine") - .arg("file", data.fileName).arg("line", data.lineNumber)); + Command cmd("executeJumpToLocation"); + cmd.arg("file", data.fileName); + cmd.arg("line", data.lineNumber); + cmd.arg("address", data.address); + runCommand(cmd); } void LldbEngine::activateFrame(int frameIndex)