JDevlieghere wrote:
I assume something else changed in the meantime (maybe the extra locking added
in #134759?) but now if I revert this change I always crash on `run`:
```
* thread #51, name = '', stop reason =
EXC_BAD_ACCESS (code=1, address=0xfffed77f38f8)
frame #0: 0x00011332b66c
liblldb.21.0.0git.dylib`lldb_private::DynamicRegisterInfo::IsReconfigurable(this=0xfffed77f383f)
at DynamicRegisterInfo.cpp:682:55 [opt]
frame #1: 0x0001136046a8
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ThreadGDBRemote::ThreadGDBRemote(this=0x000121704098,
process=0x00012880b400, tid=) at ThreadGDBRemote.cpp:48:40
[opt]
frame #2: 0x0001135ec940
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&,
lldb_private::ThreadList&) [inlined] void
std::__1::allocator::construct[abi:nn190102](this=, __p=0x000121704098, __args=0x00012880b400,
__args=) at allocator.h:165:24 [opt]
frame #3: 0x0001135ec930
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&,
lldb_private::ThreadList&) [inlined] void
std::__1::allocator_traits>::construct[abi:nn190102](__a=, __p=0x000121704098, __args=0x00012880b400,
__args=) at allocator_traits.h:319:9 [opt]
* frame #4: 0x0001135ec930
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&,
lldb_private::ThreadList&) [inlined]
std::__1::__shared_ptr_emplace>::__shared_ptr_emplace[abi:nn190102],
0>(this=0x000121704080, __a=, __args=0x00012880b400,
__args=) at shared_ptr.h:266:5 [opt]
frame #5: 0x0001135ec918
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&,
lldb_private::ThreadList&) [inlined]
std::__1::__shared_ptr_emplace>::__shared_ptr_emplace[abi:nn190102],
0>(this=0x000121704080, __a=, __args=0x00012880b400,
__args=) at shared_ptr.h:263:115 [opt]
frame #6: 0x0001135ec918
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&,
lldb_private::ThreadList&) [inlined]
std::__1::shared_ptr
std::__1::allocate_shared[abi:nn190102],
lldb_private::process_gdb_remote::ProcessGDBRemote&, unsigned long long&,
0>(__a=, __args=0x00012880b400, __args=) at
shared_ptr.h:845:51 [opt]
frame #7: 0x0001135ec90c
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&,
lldb_private::ThreadList&) [inlined]
std::__1::shared_ptr
std::__1::make_shared[abi:nn190102](__args=0x00012880b400, __args=) at shared_ptr.h:853:10 [opt]
frame #8: 0x0001135ec90c
liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(this=0x00012880b400,
old_thread_list=, new_thread_list=0x00017d1cac28) at
ProcessGDBRemote.cpp:1589:21 [opt]
frame #9: 0x000113349880
liblldb.21.0.0git.dylib`lldb_private::Process::UpdateThreadListIfNeeded()
[inlined] lldb_private::Process::UpdateThreadList(this=0x00012880b400,
old_thread_list=, new_thread_list=0x00017d1cac28) at
Process.cpp:1124:10 [opt]
frame #10: 0x000113349874
liblldb.21.0.0git.dylib`lldb_private::Process::UpdateThreadListIfNeeded(this=0x00012880b400)
at Process.cpp:1145:11 [opt]
frame #11: 0x0001133b4410
liblldb.21.0.0git.dylib`lldb_private::ThreadList::SetShouldReportStop(this=0x00012880b750,
vote=eVoteNo) at ThreadList.cpp:413:13 [opt]
frame #12: 0x000113350190
liblldb.21.0.0git.dylib`lldb_private::Process::AttachCompletionHandler::PerformAction(this=0x60404330,
event_sp=) at Process.cpp:2907:32 [opt]
frame #13: 0x00011334e858
liblldb.21.0.0git.dylib`lldb_private::Process::HandlePrivateEvent(this=0x00012880b400,
event_sp=std::__1::shared_ptr::element_type @
0x638ac900 strong=2 weak=2) at Process.cpp:3941:33 [opt]
```
https://github.com/llvm/llvm-project/pull/134757
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits