[Lldb-commits] [lldb] Improving performance of multiple threads stepping over the same brea… (PR #180101)

via lldb-commits lldb-commits at lists.llvm.org
Fri Feb 6 13:50:36 PST 2026


================
@@ -597,6 +631,41 @@ bool ThreadList::WillResume(RunDirection &direction) {
         }
       }
     }
+
+    // For each group of threads at the same breakpoint, register them with
+    // ThreadList and set them to use deferred re-enable. The breakpoint will
+    // only be re-enabled when ALL threads have finished stepping over it.
+    // Also collect threads for batched vCont if multiple threads at same BP.
+    for (auto &group : breakpoint_groups) {
+      lldb::addr_t bp_addr = group.first;
+      std::vector<ThreadSP> &threads = group.second;
+
+      if (threads.size() > 1) {
+        // Multiple threads stepping over the same breakpoint - use tracking
+        for (ThreadSP &thread_sp : threads) {
+          // Register this thread as stepping over the breakpoint
+          RegisterThreadSteppingOverBreakpoint(bp_addr, thread_sp->GetID());
+
+          // Set the plan to defer re-enabling (use callback instead)
+          ThreadPlan *plan = thread_sp->GetCurrentPlan();
+          ThreadPlanStepOverBreakpoint *bp_plan =
----------------
jimingham wrote:

This should have a check that the Kind is ePlanKindSteppingOverBreakpoint(sp?).  By your computations nothing on this list should have a different thread plan, but you want to make sure somebody doesn't inadvertently push another plan or whatever in a future change.

https://github.com/llvm/llvm-project/pull/180101


More information about the lldb-commits mailing list