[lldb-dev] LLDB deadlocks trying to unwind

Jason Molenda jmolenda at apple.com
Thu Aug 22 15:30:09 PDT 2013

On Aug 22, 2013, at 3:27 PM, Jason Molenda <jmolenda at apple.com> wrote:

> On Aug 22, 2013, at 1:26 PM, FĂ©lix Cloutier <felixcca at yahoo.ca> wrote:
>> #5	lldb_private::Mutex::Locker::Locker(lldb_private::Mutex&) at lldb/source/Host/common/Mutex.cpp:113
>> #6	lldb_private::Unwind::GetFrameCount() at lldb/include/lldb/Target/Unwind.h:51
>> #7	UnwindMacOSXFrameBackchain::DoGetFrameInfoAtIndex(unsigned int, unsigned long long&, unsigned long long&) at lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp:59
>> #8	lldb_private::Unwind::GetFrameInfoAtIndex(unsigned int, unsigned long long&, unsigned long long&) at lldb/include/lldb/Target/Unwind.h:78
>> #9	lldb_private::StackFrameList::GetFramesUpTo(unsigned int) at lldb/source/Target/StackFrameList.cpp:304
> I'll look at this a bit.
> The fact that you're picking up the UnwindMacOSXFrameBackchain is probably the source of the problem.  This was an early unwinder written by Greg back before we had UnwindLLDB and RegisterContextLLDB - it hasn't been modified in a couple of years except for mechanical changes made across the source base.

What architecture are you debugging?  Thread::GetUnwinder() should use UnwindLLDB for x86_64, i386, arm and thumb.  It will use UnwindMacOSXFrameBackchain for any other architectures .... but it should probably just fail instead.

More information about the lldb-dev mailing list