[lldb] [llvm] [lldb] Change lldb's breakpoint detection behavior [WIP] (PR #105594)
Jason Molenda via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 30 16:02:41 PDT 2024
jasonmolenda wrote:
Looking at this again. The last issue that I needed to investigate was Martin's mingw testsuite that had a regression when I landed it. The test program was https://github.com/mstorsjo/llvm-mingw/blob/master/test/hello-exception.cpp and when run
```
bin/lldb -x -b -o 'b done' -o r -o fin /tmp/a.out -- -noop
```
put a breakpoint on `done()`, run to it, `finish`. On arm64 darwin, where `done()` is a single `ret` instruction, I can reproduce this failure with my stepping PR. The thread plan stack when I do `finish` has a "step over breakpoint" thread plan, and a "step out" thread plan. We do the step over breakpoint thread plan, correctly pop both thread plans from the stack, but with my patch we're asking if either thread plan says we should resume execution, and one of them voted yes and won. (or possibly returned should stop == 0) It's been a while since i looked into that logic, need to dig back in.
Important thing is that the failure is not mingw specific, I'll probably add this as an API test in lldb, maybe updated to not require a flag to run `done`.
https://github.com/llvm/llvm-project/pull/105594
More information about the llvm-commits
mailing list