[Lldb-commits] [lldb] Add a test for evicting unreachable modules from the global module cache (PR #74894)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Fri Dec 15 01:33:42 PST 2023


DavidSpickett wrote:

My extra logging resulted in this:
```
intern-state     ^^^^^^^^ Thread::ShouldStop Begin ^^^^^^^^
intern-state     Plan stack initial state:
  thread #1: tid = 0x47d2d:
    Active plan stack:
      Element 0: Base thread plan.
      Element 1: Single stepping past breakpoint site 11 at 0xf7fd1258

intern-state     Step over breakpoint stopped for reason: trace.
python3.8        Discarding thread plans for thread (tid = 0x47d2d, force 1)
intern-state     Plan Step over breakpoint trap should stop: 0.
intern-state     Completed step over breakpoint plan.
intern-state     Plan Step over breakpoint trap auto-continue: true.

--
Command Output (stderr):
--
python3.8: ../llvm-project/lldb/source/Target/Thread.cpp:898: bool lldb_private::Thread::ShouldStop(Event *): Assertion `i != 1 && "Cannot pop plan when there is only one plan (the base plan)"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
#0 0xee160c64 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lib/python3.8/site-packages/lldb/_lldb.cpython-38-arm-linux-gnueabihf.so+0xec1c64)
#1 0xee15e688 llvm::sys::RunSignalHandlers() (/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lib/python3.8/site-packages/lldb/_lldb.cpython-38-arm-linux-gnueabihf.so+0xebf688)
#2 0xee1614f8 SignalHandler(int) (/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lib/python3.8/site-packages/lldb/_lldb.cpython-38-arm-linux-gnueabihf.so+0xec24f8)
#3 0xf7b21530 __default_sa_restorer /build/glibc-tftl1u/glibc-2.31/signal/../sysdeps/unix/sysv/linux/arm/sigrestorer.S:67:0
#4 0xf7b117e6 /build/glibc-tftl1u/glibc-2.31/csu/../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47:0
#5 0xf7b207fe raise /build/glibc-tftl1u/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:28:1
```
With the assert going off [here](https://github.com/llvm/llvm-project/blob/0ed0b7458a528b7d2b2512e07eb2fed54a69ea3a/lldb/source/Target/Thread.cpp#L886).

Which is the last place I'd expect it to be with all the `IsBasePlan` checks, but there might be a situation where `current_plan` is something unexpected. Maybe `current_plan` refers to something that has already been removed from the stack, I'm looking into it now.

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


More information about the lldb-commits mailing list