From 0562524b457d218152810f72a181d543fe348933 Mon Sep 17 00:00:00 2001 From: Todd Fiala Date: Mon, 25 Aug 2014 20:29:09 +0000 Subject: On x86 & x86_64, try to use eh_frame for frame 0. We decided to use assmbly profiler instead of eh_frame for frame 0 because for compiler generated code, eh_frame is usually synchronous(a.k.a. only valid at call site); and we have no way to tell if it's asynchronous or not. But for x86 & x86_64 compiler generated code: 1. clang & GCC describes all prologue instructions in eh_frame; 2. mid-function stack pointer altering instructions can be easily detected. So we can grab eh_frame, and use assembly profiler to augment it into asynchronous unwind table. This change also benefits hand-written assembly; eh_frame for hand-written assembly is often asynchronous,so we have a much better chance to successfully unwind through them. Change by Tong Shen. llvm-svn: 216406 --- .../UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp') diff --git a/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp b/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp index 42453ce72fa..b8d56d3909e 100644 --- a/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp +++ b/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp @@ -284,6 +284,14 @@ UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly (AddressRange& return false; } +bool +UnwindAssemblyInstEmulation::AugmentUnwindPlanFromCallSite (AddressRange& func, + Thread& thread, + UnwindPlan& unwind_plan) +{ + return false; +} + bool UnwindAssemblyInstEmulation::GetFastUnwindPlan (AddressRange& func, Thread& thread, -- cgit v1.2.3