[Lldb-commits] [PATCH] D140368: [lldb] Consider all breakpoints in breakpoint detection

David Spickett via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Dec 20 01:49:52 PST 2022


DavidSpickett added a reviewer: jingham.
DavidSpickett added a subscriber: jingham.
DavidSpickett added a comment.

The intent makes sense. We should stop and report user breakpoints triggered while trying to execute some internal stepping plan, even if they overlap what lldb was planning to do in the first place.

Not totally sure how the change achieves that, this is quite the function. + @jingham who wrote the original changes.

> Currently in some cases lldb reports stop reason as "step out" or "step over" (from thread plan completion) over "breakpoint"

This would be clearer if you said "(from thread plan completion) instead of "breakpoint"". Took me a while to work out that it wasn't over meaning step over a breakpoint.

I think the test naming could be clearer. `breakpoint/step_out_breakpoint/TestStepOutBreakpoint.py` implies it's just about stepping out. How about `breakpoint/thread_plan_user_breakpoint/TestThreadPlanUserBreakpoint.py` ? Something that is clear we're testing the interaction of automatic internal stepping plans and breakpoints the user puts in.

Is it worth checking that an unconditional user breakpoint is also reported?



================
Comment at: lldb/source/Target/StopInfo.cpp:540
 
+            if (m_should_stop && !bp_loc_sp->GetBreakpoint().IsInternal())
+              internal_breakpoint = false;
----------------
I think the key here is the `m_should_stop` check (the rest looks equivalent to what is there already). What exactly does that achieve?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140368/new/

https://reviews.llvm.org/D140368



More information about the lldb-commits mailing list