[Lldb-commits] [lldb] r216416 - Copy unwind plan instead of modifying it directly, so "image show-unwind" prints different plans for asynchronous and synchronous.
Todd Fiala
todd.fiala at gmail.com
Mon Aug 25 16:09:40 PDT 2014
Author: tfiala
Date: Mon Aug 25 18:09:40 2014
New Revision: 216416
URL: http://llvm.org/viewvc/llvm-project?rev=216416&view=rev
Log:
Copy unwind plan instead of modifying it directly, so "image show-unwind" prints different plans for asynchronous and synchronous.
Change by Tong Shen.
Modified:
lldb/trunk/source/Symbol/FuncUnwinders.cpp
Modified: lldb/trunk/source/Symbol/FuncUnwinders.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/FuncUnwinders.cpp?rev=216416&r1=216415&r2=216416&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/FuncUnwinders.cpp (original)
+++ lldb/trunk/source/Symbol/FuncUnwinders.cpp Mon Aug 25 18:09:40 2014
@@ -121,9 +121,13 @@ FuncUnwinders::GetUnwindPlanAtNonCallSit
// For 0th frame on i386 & x86_64, we fetch eh_frame and try using assembly profiler
// to augment it into asynchronous unwind table.
GetUnwindPlanAtCallSite(current_offset);
- if (m_unwind_plan_call_site_sp
- && assembly_profiler_sp->AugmentUnwindPlanFromCallSite(m_range, thread, *m_unwind_plan_call_site_sp))
- return m_unwind_plan_call_site_sp;
+ if (m_unwind_plan_call_site_sp) {
+ UnwindPlan* plan = new UnwindPlan (*m_unwind_plan_call_site_sp);
+ if (assembly_profiler_sp->AugmentUnwindPlanFromCallSite (m_range, thread, *plan)) {
+ m_unwind_plan_non_call_site_sp.reset (plan);
+ return m_unwind_plan_non_call_site_sp;
+ }
+ }
}
m_unwind_plan_non_call_site_sp.reset (new UnwindPlan (lldb::eRegisterKindGeneric));
More information about the lldb-commits
mailing list