fallkrum added a comment. In D80112#2080516 <https://reviews.llvm.org/D80112#2080516>, @jingham wrote:
> I was suggesting something like having a Python breakpoint action that > increments a Python variable. Hit the breakpoint first on thread A. That > should increment it by one. Then suspend thread A and run to hit the > breakpoint on thread B. If your fix is right, then only the thread B action > is run, so the python variable will have a value of 2. But if the suspended > thread action also runs, the variable will have the value of 3. That seems > like a pretty easy test to write, and will ensure that the correct behavior > is produced. Can you please explain in more details what breakpoint actions you keep in mind? My investigations have led to the conclusion that all breakpoint actions (including callbacks) are executed inside StopInfoBreakpoint::PerformAction and only once per StopInfoBreakpoint breakpoint instance. I.e if we saved that StopInfoBreakpoint instance for whatever reason and it wrongly become the reason of stop (as in our case when thread was suspended) the second time we call it's StopInfoBreakpoint::PerformAction it simply returns not performing any actions. Please take a look at it's implementation: void PerformAction(Event *event_ptr) override { if (!m_should_perform_action) return; m_should_perform_action = false; . . . Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80112/new/ https://reviews.llvm.org/D80112 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits