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 = '<lldb.process.internal-state(pid=31609)>', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffed77f38f8) frame #0: 0x000000011332b66c liblldb.21.0.0git.dylib`lldb_private::DynamicRegisterInfo::IsReconfigurable(this=0xfffffffed77f383f) at DynamicRegisterInfo.cpp:682:55 [opt] frame #1: 0x00000001136046a8 liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ThreadGDBRemote::ThreadGDBRemote(this=0x0000000121704098, process=0x000000012880b400, tid=<unavailable>) at ThreadGDBRemote.cpp:48:40 [opt] frame #2: 0x00000001135ec940 liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&, lldb_private::ThreadList&) [inlined] void std::__1::allocator<lldb_private::process_gdb_remote::ThreadGDBRemote>::construct[abi:nn190102]<lldb_private::process_gdb_remote::ThreadGDBRemote, lldb_private::process_gdb_remote::ProcessGDBRemote&, unsigned long long&>(this=<unavailable>, __p=0x0000000121704098, __args=0x000000012880b400, __args=<unavailable>) at allocator.h:165:24 [opt] frame #3: 0x00000001135ec930 liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&, lldb_private::ThreadList&) [inlined] void std::__1::allocator_traits<std::__1::allocator<lldb_private::process_gdb_remote::ThreadGDBRemote>>::construct[abi:nn190102]<lldb_private::process_gdb_remote::ThreadGDBRemote, lldb_private::process_gdb_remote::ProcessGDBRemote&, unsigned long long&, 0>(__a=<unavailable>, __p=0x0000000121704098, __args=0x000000012880b400, __args=<unavailable>) at allocator_traits.h:319:9 [opt] * frame #4: 0x00000001135ec930 liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&, lldb_private::ThreadList&) [inlined] std::__1::__shared_ptr_emplace<lldb_private::process_gdb_remote::ThreadGDBRemote, std::__1::allocator<lldb_private::process_gdb_remote::ThreadGDBRemote>>::__shared_ptr_emplace[abi:nn190102]<lldb_private::process_gdb_remote::ProcessGDBRemote&, unsigned long long&, std::__1::allocator<lldb_private::process_gdb_remote::ThreadGDBRemote>, 0>(this=0x0000000121704080, __a=<unavailable>, __args=0x000000012880b400, __args=<unavailable>) at shared_ptr.h:266:5 [opt] frame #5: 0x00000001135ec918 liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&, lldb_private::ThreadList&) [inlined] std::__1::__shared_ptr_emplace<lldb_private::process_gdb_remote::ThreadGDBRemote, std::__1::allocator<lldb_private::process_gdb_remote::ThreadGDBRemote>>::__shared_ptr_emplace[abi:nn190102]<lldb_private::process_gdb_remote::ProcessGDBRemote&, unsigned long long&, std::__1::allocator<lldb_private::process_gdb_remote::ThreadGDBRemote>, 0>(this=0x0000000121704080, __a=<unavailable>, __args=0x000000012880b400, __args=<unavailable>) at shared_ptr.h:263:115 [opt] frame #6: 0x00000001135ec918 liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&, lldb_private::ThreadList&) [inlined] std::__1::shared_ptr<lldb_private::process_gdb_remote::ThreadGDBRemote> std::__1::allocate_shared[abi:nn190102]<lldb_private::process_gdb_remote::ThreadGDBRemote, std::__1::allocator<lldb_private::process_gdb_remote::ThreadGDBRemote>, lldb_private::process_gdb_remote::ProcessGDBRemote&, unsigned long long&, 0>(__a=<unavailable>, __args=0x000000012880b400, __args=<unavailable>) at shared_ptr.h:845:51 [opt] frame #7: 0x00000001135ec90c liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(lldb_private::ThreadList&, lldb_private::ThreadList&) [inlined] std::__1::shared_ptr<lldb_private::process_gdb_remote::ThreadGDBRemote> std::__1::make_shared[abi:nn190102]<lldb_private::process_gdb_remote::ThreadGDBRemote, lldb_private::process_gdb_remote::ProcessGDBRemote&, unsigned long long&, 0>(__args=0x000000012880b400, __args=<unavailable>) at shared_ptr.h:853:10 [opt] frame #8: 0x00000001135ec90c liblldb.21.0.0git.dylib`lldb_private::process_gdb_remote::ProcessGDBRemote::DoUpdateThreadList(this=0x000000012880b400, old_thread_list=<unavailable>, new_thread_list=0x000000017d1cac28) at ProcessGDBRemote.cpp:1589:21 [opt] frame #9: 0x0000000113349880 liblldb.21.0.0git.dylib`lldb_private::Process::UpdateThreadListIfNeeded() [inlined] lldb_private::Process::UpdateThreadList(this=0x000000012880b400, old_thread_list=<unavailable>, new_thread_list=0x000000017d1cac28) at Process.cpp:1124:10 [opt] frame #10: 0x0000000113349874 liblldb.21.0.0git.dylib`lldb_private::Process::UpdateThreadListIfNeeded(this=0x000000012880b400) at Process.cpp:1145:11 [opt] frame #11: 0x00000001133b4410 liblldb.21.0.0git.dylib`lldb_private::ThreadList::SetShouldReportStop(this=0x000000012880b750, vote=eVoteNo) at ThreadList.cpp:413:13 [opt] frame #12: 0x0000000113350190 liblldb.21.0.0git.dylib`lldb_private::Process::AttachCompletionHandler::PerformAction(this=0x0000600000404330, event_sp=<unavailable>) at Process.cpp:2907:32 [opt] frame #13: 0x000000011334e858 liblldb.21.0.0git.dylib`lldb_private::Process::HandlePrivateEvent(this=0x000000012880b400, event_sp=std::__1::shared_ptr<lldb_private::Event>::element_type @ 0x00006000038ac900 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