[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