[lldb-dev] LLDB deadlocks trying to unwind
felixcca at yahoo.ca
Thu Aug 22 15:35:57 PDT 2013
I'm making a stub for an emulator that executes PPC code.
Le 2013-08-22 à 18:30:09, Jason Molenda <jmolenda at apple.com> a écrit :
> 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