When a RegisterContext produces an invalid CFA address, change
authorJason Molenda <jmolenda@apple.com>
Sat, 22 Nov 2014 01:52:03 +0000 (01:52 +0000)
committerJason Molenda <jmolenda@apple.com>
Sat, 22 Nov 2014 01:52:03 +0000 (01:52 +0000)
commitcea6d634a5e6c6a42ac2a9ff8de223023a49381d
treed66b5050c508013ae940479221481865b2ee26df
parent893c932acf365b99298de2ac6017454af961fb84
When a RegisterContext produces an invalid CFA address, change
UnwindLLDB::AddOneMoreFrame to try the fallback unwind plan on
that same stack frame before it tries the fallback unwind plan
on the "next" or callee frame.

In RegisterContextLLDB::TryFallbackUnwindPlan, when we're
trying the fallback unwind plan to see if it is valid, make
sure we change all of the object ivars that might be used in
the process of fetching the CFA & caller's saved pc value
and restore those if we decide not to use the fallback
unwindplan.

<rdar://problem/19035079>

llvm-svn: 222601
lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp