labath added a comment. In D144392#4188940 <https://reviews.llvm.org/D144392#4188940>, @kpdev42 wrote:
> Gdb does this for example: > >> GDB optimizes for stepping the mainline code. If a signal that has handle >> nostop and handle pass set arrives while a stepping command (e.g., stepi, >> step, next) is in progress, GDB lets the signal handler run and then resumes >> stepping the mainline code once the signal handler returns. In other words, >> GDB steps over the signal handler. This prevents signals that you’ve >> specified as not interesting (with handle nostop) from changing the focus of >> debugging unexpectedly. > > (https://sourceware.org/gdb/onlinedocs/gdb/Signals.html), which seems > reasonable. I agree that this is the most useful behavior in most normal situations. > If this logic does not belong in lldb-server, Yes, I believe this is too complex to be done inside lldb-server. I might reconsider if you can show that the gdb logic you described above is also implemented on the gdbserver side, but I'd rather not.. :) > then it could be fixed right inside the `StepOverBreakpoint` plan, by > enabling the breakpoint being stepped over when a signal is received, waiting > for it to hit when the potential handler has returned, and then trying to > step off again. But then doing a `step-into` from a line with a breakpoint > will step over the signal handler, and from a line without a breakpoint will > stop inside the handler, if a signal is received. Then probably creating a > new `ThreadPlan` instead with the same logic, executing on top of the plan > stack, is the way to go? Sounds approximately right. The way I'd probably do is it to have the `StepOverBreakpoint` step into the signal handler, and then push a `StepOut` (which hopefully knows how to step out of a signal handler -- if not it may need some tuning, or creating a specialized `StepOutOfSignal` plan). After the step out is done, it can retry the step over operation. @jingham is our thread plan guru, though, so he may have a better idea... Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D144392/new/ https://reviews.llvm.org/D144392 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits