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
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to