[lldb-dev] LLDB API create breakpoint not work
jingham at apple.com
jingham at apple.com
Thu Mar 26 09:04:12 PDT 2015
Breakpoints in lldb have three stages. There is an SBBreakpoint, which is some specification of how to set places to stop in your code. When that specification generates some actual address on which to stop, an SBBreakpointLocations is added to the SBBreakpoint. One SBBreakpoint can result in multiple locations at which to stop. But a breakpoint can be valid and have a description even if it has not yet generated any actual stop addresses. So the first thing to do is to check if your breakpoint has one or more locations (SBBreakpoint::GetNumLocations/GetLocationAtIndex).
Breakpoints send events to the Target that owns them when locations get added or removed or changed. You can listen for those events. There isn't a notification for "wasn't set at exactly the location you expected since for many breakpoint types that wouldn't really be possible to calculate. You'll just have to watch for the breakpoint events and then check the changed locations for whatever you want to know.
> On Mar 26, 2015, at 8:31 AM, Ziming Song <s.ziming at hotmail.com> wrote:
> Hi everyone, I'm doing a GUI frontend using lldb api, but the breakpoint created by code cannot make the program stop.
> The code for creating the breakpoint is:
> lldb::SBBreakpoint bp = target_.BreakpointCreateByLocation(target_.GetExecutable().GetFilename(), lineNumber);
> The breakpoint is valid, and I can get its description, but the program does not stop on that breakpoint.
> I've set the async of debugger to false, and after launching the target, the first state of the process is eStateExited, which means the breakpoint didn't work (even if `bp.SetEnabled(true)`).
> Another question. If I'm able to make breakpoint work, how can I get notified if the line number of that breakpoint change(like when the user set breakpoint on a line which generates no code and the breakpoint moves to the closest line that generates code).
> Thanks in advance.
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
More information about the lldb-dev