process.gdb-remote crashes Part 2

sometimes it also just deadlocks:

#0 0x00000001018ebeb6 in __semwait_signal ()
#1 0x00000001018efcd1 in _pthread_cond_wait ()
#2 0x000000012f3a4542 in lldb_private::Condition::Wait (this=0x12c8c75c8, mutex=0x12c8c7588, abstime=0x7fff5fbfc5f0, timed_out=0x7fff5fbfc6af) at /Users/aep/lldb/source/Host/common/Condition.cpp:89
#3 0x000000012f13a5b2 in lldb_private::Predicate<bool>::WaitForValueEqualTo (this=0x12c8c7580, value=false, abstime=0x7fff5fbfc5f0, timed_out=0x7fff5fbfc6af) at Predicate.h:314
#4 0x000000012f2b0fce in GDBRemoteCommunication::SendInterrupt (this=0x12c8c7320, locker=@0x7fff5fbfc6a0, seconds_to_wait_for_stop=1, timed_out=0x7fff5fbfc6af) at /Users/aep/lldb/source/Plugins/Process/../../../source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp:467
#5 0x000000012f2b1492 in GDBRemoteCommunication::SendPacketAndWaitForResponse (this=0x12c8c7320, payload=0x7fff5fbfc730 "m10118c450,200", payload_length=14, response=@0x7fff5fbfc710, timeout_seconds=2, send_async=true) at /Users/aep/lldb/source/Plugins/Process/../../../source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp:142
#6 0x000000012f2a6815 in ProcessGDBRemote::DoReadMemory (this=0x12c8c6c00, addr=4313367632, buf=0x137a86c00, size=512, error=@0x7fff5fbfc840) at /Users/aep/lldb/source/Plugins/Process/../../../source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:1290
#7 0x000000012f1dc646 in lldb_private::Process::ReadMemory (this=0x12c8c6c00, addr=4313339984, buf=0x137a80000, size=264096, error=@0x7fff5fbfc840) at /Users/aep/lldb/source/Target/Process.cpp:842
#8 0x000000012f31a529 in lldb_private::access_raw (as=0x13a27e650, addr=4313339984, extent=264096, valp=0x137a80000 "\024", write=0, arg=0x13a27e4f0) at /Users/aep/lldb/source/Plugins/Process/Utility/MacOSXLibunwindCallbacks.cpp:191
#9 0x000000012f346cd2 in lldb_private::RemoteProcInfo::readRaw (this=0x13a27e650, addr=4313339984, extent=264096, valp=0x137a80000 "\024", arg=0x13a27e4f0) at RemoteProcInfo.hpp:726
#10 0x000000012f346d12 in lldb_private::RemoteProcInfo::getBytes (this=0x13a27e650, addr=4313339984, extent=264096, buf=0x137a80000 "\024", arg=0x13a27e4f0) at RemoteProcInfo.hpp:509
#11 0x000000012f346db3 in lldb_private::OtherAddressSpace<Pointer64<LittleEndian> >::getBytes (this=0x135537c10, addr=4313339984, extent=264096, buf=0x137a80000 "\024") at AddressSpace.hpp:298
#12 0x000000012f35bb18 in lldb_private::RemoteUnwindCursor<lldb_private::OtherAddressSpace<Pointer64<LittleEndian> >, lldb_private::Registers_x86_64>::step (this=0x7fff5fbfcb60) at UnwindCursor.hpp:1168
#13 0x000000012f337d8a in unw_step (cursor=0x7fff5fbfcb60) at /Users/aep/lldb/source/Plugins/Process/Utility/libunwind/src/libuwind.cxx:69
#14 0x000000012f31e86d in UnwindLibUnwind::GetFrameCount (this=0x1373a5fe0) at /Users/aep/lldb/source/Plugins/Process/Utility/UnwindLibUnwind.cpp:42
#15 0x000000012f1e98d4 in lldb_private::StackFrameList::GetNumFrames (this=0x108699680, can_create=true) at /Users/aep/lldb/source/Target/StackFrameList.cpp:76
#16 0x000000012f1f8180 in lldb_private::thread::GetStackFrameCount (this=0x13a27e4f0) at /Users/aep/lldb/source/Target/Thread.cpp:835
#17 0x000000012f3218f3 in lldb::SBThread::GetNumFrames (this=0x7fff5fbfd410) at /Users/aep/lldb/source/API/SBThread.cpp:355

What is the debugserver process doing when this happens? You can for instance run the "sample" tool on debugserver for a quick look or run it under the debugger. Looks like it must have gotten hung up somehow.

Jim

Somehow you are running when you are trying to get the stack frames. I can tell that you are running because "GDBRemoteCommunication::SendInterrupt()" (frame 4) only happens when your target is running. We should do a better job of protected users from getting any stack frames when the process is running.