[Lldb-commits] [lldb] [lldb] Change lldb's breakpoint handling behavior (PR #96260)

Martin Storsjö via lldb-commits lldb-commits at lists.llvm.org
Sat Jul 20 13:10:55 PDT 2024


mstorsjo wrote:

> > FYI, I also ran into failures due to this change, when debugging on Windows (with DWARF). See the run in https://github.com/mstorsjo/actions-test/actions/runs/10020326811 vs https://github.com/mstorsjo/actions-test/actions/runs/10020393197. Thanks for reverting; hopefully it’s the same root cause as on other platforms.
> 
> oooh that 10020393197 is surprising. It looks like we hit a breakpoint, did `finish` up until a recursive function and it resumed execution without stopping. I haven't seen that one before, and not sure how I could have introduced it. I'll def need to look at my ProcessWindows changes and again see if I can't figure out what might be going on. Aleksandr ran a slightly earlier version of the windows changes against the lldb testsuite and didn't uncover any problems, but it didn't include this test file.
> 
> @mstorsjo is this test source file on-line somewhere, or can you paste it into a comment? I'll try to repo on linux or macos too, maybe it is a unique corner case unrelated to Windows that is a problem. (unlikely, but you never know if we might get lucky). Thanks for the heads-up.

The source to this testcase is https://github.com/mstorsjo/llvm-mingw/blob/master/test/hello-exception.cpp, and I put up a prebuilt binary at https://martin.st/temp/hello-exception-dwarf.exe, if you want to have a look at it in that form. I'm running LLDB with the following input:
https://github.com/mstorsjo/llvm-mingw/blob/master/run-lldb-tests.sh#L111-L120
```
# Test setting a breakpoint in LLDB, checking the backtrace when we hit it,
# stepping from the breakpoint, and running to completion.
cat > $SCRIPT <<EOF
b done
run
bt
finish
cont
EOF
$LLDB -b -s $SCRIPT -- $TEST_DIR/$exe -noop < /dev/null > $OUT 2>/dev/null
```

FWIW, interestingly, the issue did seem to appear on x86_64, but not on i386. This was with a non-optimized build of it, in case that makes any difference (as it sometimes does for how unwinding etc behaves).

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


More information about the lldb-commits mailing list