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

Reply via email to