From 9bb421d38bc403e3cf4afc37511a22fc3cc5154d Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Tue, 4 Nov 2014 05:35:32 +0000 Subject: [PATCH] Add one extra sanity check to RegisterContextLLDB::TryFallbackUnwindPlan so it doesn't try the arch default if a comiler-generated (eh_frame, compact unwind info) based unwind plan has failed. llvm-svn: 221239 --- lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp index 92e3789..61f3400 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp @@ -1404,6 +1404,14 @@ RegisterContextLLDB::TryFallbackUnwindPlan () if (m_fallback_unwind_plan_sp.get() == NULL) return false; + if (m_full_unwind_plan_sp.get() == NULL) + return false; + + // If a compiler generated unwind plan failed, trying the arch default unwindplan + // isn't going to do any better. + if (m_full_unwind_plan_sp->GetSourcedFromCompiler() == eLazyBoolYes) + return false; + UnwindPlanSP original_full_unwind_plan_sp = m_full_unwind_plan_sp; UnwindPlan::RowSP active_row = m_fallback_unwind_plan_sp->GetRowForFunctionOffset (m_current_offset); -- 2.7.4