[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