LLDB mainline
|
#include <FuncUnwinders.h>
Private Member Functions | |
lldb::UnwindAssemblySP | GetUnwindAssemblyProfiler (Target &target) |
lldb_private::LazyBool | CompareUnwindPlansForIdenticalInitialPCLocation (Thread &thread, const lldb::UnwindPlanSP &a, const lldb::UnwindPlanSP &b) |
FuncUnwinders (const FuncUnwinders &)=delete | |
const FuncUnwinders & | operator= (const FuncUnwinders &)=delete |
Definition at line 13 of file FuncUnwinders.h.
FuncUnwinders::FuncUnwinders | ( | lldb_private::UnwindTable & | unwind_table, |
AddressRange | range | ||
) |
constructor
Definition at line 36 of file FuncUnwinders.cpp.
|
default |
destructor
|
privatedelete |
|
private |
Definition at line 362 of file FuncUnwinders.cpp.
References lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, RegisterNumber::GetAsKind(), and LLDB_REGNUM_GENERIC_PC.
Referenced by GetUnwindPlanAtNonCallSite().
|
inline |
Definition at line 56 of file FuncUnwinders.h.
References lldb_private::AddressRange::ContainsFileAddress(), and m_range.
lldb::UnwindPlanSP lldb_private::FuncUnwinders::GetArchDefaultAtFuncEntryUnwindPlan | ( | Thread & | thread | ) |
lldb::UnwindPlanSP lldb_private::FuncUnwinders::GetArchDefaultUnwindPlan | ( | Thread & | thread | ) |
UnwindPlanSP FuncUnwinders::GetArmUnwindUnwindPlan | ( | Target & | target | ) |
Definition at line 161 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::UnwindTable::GetArmUnwindInfo(), lldb_private::AddressRange::GetBaseAddress(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), lldb_private::Address::IsValid(), m_mutex, m_range, m_tried_unwind_plan_arm_unwind, m_unwind_plan_arm_unwind_sp, and m_unwind_table.
Referenced by GetUnwindPlanAtCallSite().
UnwindPlanSP FuncUnwinders::GetAssemblyUnwindPlan | ( | Target & | target, |
Thread & | thread | ||
) |
Definition at line 327 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::UnwindTable::GetAllowAssemblyEmulationUnwindPlans(), lldb_private::AddressRange::GetByteSize(), GetUnwindAssemblyProfiler(), m_mutex, m_range, m_tried_unwind_plan_assembly, m_unwind_plan_assembly_sp, m_unwind_table, and lldb_private::AddressRange::SetByteSize().
Referenced by GetUnwindPlanAtNonCallSite().
UnwindPlanSP FuncUnwinders::GetCompactUnwindUnwindPlan | ( | Target & | target | ) |
Definition at line 80 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::AddressRange::GetBaseAddress(), lldb_private::UnwindTable::GetCompactUnwindInfo(), lldb_private::CompactUnwindInfo::GetUnwindPlan(), lldb_private::Address::IsValid(), m_mutex, m_range, m_tried_unwind_plan_compact_unwind, m_unwind_plan_compact_unwind, and m_unwind_table.
Referenced by GetLSDAAddress(), GetPersonalityRoutinePtrAddress(), and GetUnwindPlanAtCallSite().
UnwindPlanSP FuncUnwinders::GetDebugFrameAugmentedUnwindPlan | ( | Target & | target, |
Thread & | thread | ||
) |
Definition at line 286 of file FuncUnwinders.cpp.
References lldb_private::ArchSpec::eCore_x86_32_i386, lldb_private::ArchSpec::eCore_x86_64_x86_64, lldb_private::ArchSpec::eCore_x86_64_x86_64h, lldb_private::Target::GetArchitecture(), lldb_private::ArchSpec::GetCore(), GetDebugFrameUnwindPlan(), GetUnwindAssemblyProfiler(), m_mutex, m_range, m_tried_unwind_plan_debug_frame_augmented, and m_unwind_plan_debug_frame_augmented_sp.
Referenced by GetUnwindPlanAtNonCallSite().
UnwindPlanSP FuncUnwinders::GetDebugFrameUnwindPlan | ( | Target & | target | ) |
Definition at line 143 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::AddressRange::GetBaseAddress(), lldb_private::UnwindTable::GetDebugFrameInfo(), lldb_private::DWARFCallFrameInfo::GetUnwindPlan(), lldb_private::Address::IsValid(), m_mutex, m_range, m_tried_unwind_plan_debug_frame, m_unwind_plan_debug_frame_sp, and m_unwind_table.
Referenced by GetDebugFrameAugmentedUnwindPlan(), GetUnwindPlanAtCallSite(), and GetUnwindPlanAtNonCallSite().
UnwindPlanSP FuncUnwinders::GetEHFrameAugmentedUnwindPlan | ( | Target & | target, |
Thread & | thread | ||
) |
Definition at line 245 of file FuncUnwinders.cpp.
References lldb_private::ArchSpec::eCore_x86_32_i386, lldb_private::ArchSpec::eCore_x86_64_x86_64, lldb_private::ArchSpec::eCore_x86_64_x86_64h, lldb_private::Target::GetArchitecture(), lldb_private::ArchSpec::GetCore(), GetEHFrameUnwindPlan(), GetUnwindAssemblyProfiler(), m_mutex, m_range, m_tried_unwind_plan_eh_frame_augmented, and m_unwind_plan_eh_frame_augmented_sp.
Referenced by GetUnwindPlanAtNonCallSite().
UnwindPlanSP FuncUnwinders::GetEHFrameUnwindPlan | ( | Target & | target | ) |
Definition at line 125 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::AddressRange::GetBaseAddress(), lldb_private::UnwindTable::GetEHFrameInfo(), lldb_private::DWARFCallFrameInfo::GetUnwindPlan(), lldb_private::Address::IsValid(), m_mutex, m_range, m_tried_unwind_plan_eh_frame, m_unwind_plan_eh_frame_sp, and m_unwind_table.
Referenced by GetEHFrameAugmentedUnwindPlan(), GetLSDAAddress(), GetPersonalityRoutinePtrAddress(), GetUnwindPlanAtCallSite(), and GetUnwindPlanAtNonCallSite().
Definition at line 513 of file FuncUnwinders.cpp.
References GetUnwindAssemblyProfiler(), lldb_private::Address::IsValid(), m_first_non_prologue_insn, m_mutex, and m_range.
const Address & FuncUnwinders::GetFunctionStartAddress | ( | ) | const |
Definition at line 526 of file FuncUnwinders.cpp.
References lldb_private::AddressRange::GetBaseAddress(), and m_range.
Definition at line 540 of file FuncUnwinders.cpp.
References GetCompactUnwindUnwindPlan(), GetEHFrameUnwindPlan(), and GetObjectFileUnwindPlan().
UnwindPlanSP FuncUnwinders::GetObjectFileAugmentedUnwindPlan | ( | Target & | target, |
Thread & | thread | ||
) |
Definition at line 214 of file FuncUnwinders.cpp.
References GetObjectFileUnwindPlan(), GetUnwindAssemblyProfiler(), m_mutex, m_range, m_tried_unwind_plan_object_file_augmented, and m_unwind_plan_object_file_augmented_sp.
Referenced by GetUnwindPlanAtNonCallSite().
lldb::UnwindPlanSP FuncUnwinders::GetObjectFileUnwindPlan | ( | Target & | target | ) |
Definition at line 105 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::AddressRange::GetBaseAddress(), lldb_private::UnwindTable::GetObjectFileUnwindInfo(), lldb_private::CallFrameInfo::GetUnwindPlan(), lldb_private::Address::IsValid(), m_mutex, m_range, m_tried_unwind_plan_object_file, m_unwind_plan_object_file_sp, and m_unwind_table.
Referenced by GetLSDAAddress(), GetObjectFileAugmentedUnwindPlan(), GetPersonalityRoutinePtrAddress(), GetUnwindPlanAtCallSite(), and GetUnwindPlanAtNonCallSite().
Definition at line 556 of file FuncUnwinders.cpp.
References GetCompactUnwindUnwindPlan(), GetEHFrameUnwindPlan(), and GetObjectFileUnwindPlan().
UnwindPlanSP FuncUnwinders::GetSymbolFileUnwindPlan | ( | Thread & | thread | ) |
Definition at line 199 of file FuncUnwinders.cpp.
References lldb_private::AddressRange::GetBaseAddress(), lldb_private::Thread::GetRegisterContext(), lldb_private::UnwindTable::GetSymbolFile(), m_mutex, m_range, m_tried_unwind_plan_symbol_file, m_unwind_plan_symbol_file_sp, and m_unwind_table.
Referenced by GetUnwindPlanAtCallSite(), and GetUnwindPlanAtNonCallSite().
|
private |
Definition at line 531 of file FuncUnwinders.cpp.
References lldb_private::UnwindAssembly::FindPlugin(), lldb_private::UnwindTable::GetArchitecture(), lldb_private::Target::GetArchitecture(), and m_unwind_table.
Referenced by GetAssemblyUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetFirstNonPrologueInsn(), GetObjectFileAugmentedUnwindPlan(), and GetUnwindPlanFastUnwind().
UnwindPlanSP FuncUnwinders::GetUnwindPlanArchitectureDefault | ( | lldb_private::Thread & | thread | ) |
Definition at line 464 of file FuncUnwinders.cpp.
References lldb_private::Thread::CalculateProcess(), lldb_private::ABI::CreateDefaultUnwindPlan(), lldb::eRegisterKindGeneric, m_mutex, m_tried_unwind_arch_default, and m_unwind_plan_arch_default_sp.
Referenced by GetUnwindPlanAtNonCallSite().
UnwindPlanSP FuncUnwinders::GetUnwindPlanArchitectureDefaultAtFunctionEntry | ( | lldb_private::Thread & | thread | ) |
Definition at line 488 of file FuncUnwinders.cpp.
References lldb_private::Thread::CalculateProcess(), lldb_private::ABI::CreateFunctionEntryUnwindPlan(), lldb::eRegisterKindGeneric, m_mutex, m_tried_unwind_arch_default_at_func_entry, and m_unwind_plan_arch_default_at_func_entry_sp.
Referenced by GetUnwindPlanAtNonCallSite().
UnwindPlanSP FuncUnwinders::GetUnwindPlanAtCallSite | ( | Target & | target, |
Thread & | thread | ||
) |
Definition at line 60 of file FuncUnwinders.cpp.
References GetArmUnwindUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), and m_mutex.
UnwindPlanSP FuncUnwinders::GetUnwindPlanAtNonCallSite | ( | Target & | target, |
lldb_private::Thread & | thread | ||
) |
Definition at line 393 of file FuncUnwinders.cpp.
References CompareUnwindPlansForIdenticalInitialPCLocation(), lldb_private::eLazyBoolNo, GetAssemblyUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileAugmentedUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), GetUnwindPlanArchitectureDefault(), and GetUnwindPlanArchitectureDefaultAtFunctionEntry().
UnwindPlanSP FuncUnwinders::GetUnwindPlanFastUnwind | ( | Target & | target, |
lldb_private::Thread & | thread | ||
) |
Definition at line 444 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, GetUnwindAssemblyProfiler(), m_mutex, m_range, m_tried_unwind_fast, and m_unwind_plan_fast_sp.
|
privatedelete |
|
private |
Definition at line 150 of file FuncUnwinders.h.
Referenced by GetFirstNonPrologueInsn().
|
private |
Definition at line 118 of file FuncUnwinders.h.
Referenced by GetArmUnwindUnwindPlan(), GetAssemblyUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetEHFrameUnwindPlan(), GetFirstNonPrologueInsn(), GetObjectFileAugmentedUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), GetUnwindPlanArchitectureDefault(), GetUnwindPlanArchitectureDefaultAtFunctionEntry(), GetUnwindPlanAtCallSite(), and GetUnwindPlanFastUnwind().
|
private |
Definition at line 116 of file FuncUnwinders.h.
Referenced by ContainsAddress(), GetArmUnwindUnwindPlan(), GetAssemblyUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetEHFrameUnwindPlan(), GetFirstNonPrologueInsn(), GetFunctionStartAddress(), GetObjectFileAugmentedUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), and GetUnwindPlanFastUnwind().
|
private |
Definition at line 147 of file FuncUnwinders.h.
Referenced by GetUnwindPlanArchitectureDefault().
|
private |
Definition at line 148 of file FuncUnwinders.h.
Referenced by GetUnwindPlanArchitectureDefaultAtFunctionEntry().
|
private |
Definition at line 147 of file FuncUnwinders.h.
Referenced by GetUnwindPlanFastUnwind().
|
private |
Definition at line 146 of file FuncUnwinders.h.
Referenced by GetArmUnwindUnwindPlan().
|
private |
Definition at line 139 of file FuncUnwinders.h.
Referenced by GetAssemblyUnwindPlan().
|
private |
Definition at line 145 of file FuncUnwinders.h.
Referenced by GetCompactUnwindUnwindPlan().
|
private |
Definition at line 141 of file FuncUnwinders.h.
Referenced by GetDebugFrameUnwindPlan().
|
private |
Definition at line 144 of file FuncUnwinders.h.
Referenced by GetDebugFrameAugmentedUnwindPlan().
|
private |
Definition at line 139 of file FuncUnwinders.h.
Referenced by GetEHFrameUnwindPlan().
|
private |
Definition at line 143 of file FuncUnwinders.h.
Referenced by GetEHFrameAugmentedUnwindPlan().
|
private |
Definition at line 140 of file FuncUnwinders.h.
Referenced by GetObjectFileUnwindPlan().
|
private |
Definition at line 142 of file FuncUnwinders.h.
Referenced by GetObjectFileAugmentedUnwindPlan().
|
private |
Definition at line 146 of file FuncUnwinders.h.
Referenced by GetSymbolFileUnwindPlan().
|
private |
Definition at line 135 of file FuncUnwinders.h.
Referenced by GetUnwindPlanArchitectureDefaultAtFunctionEntry().
|
private |
Definition at line 134 of file FuncUnwinders.h.
Referenced by GetUnwindPlanArchitectureDefault().
|
private |
Definition at line 131 of file FuncUnwinders.h.
Referenced by GetArmUnwindUnwindPlan().
|
private |
Definition at line 120 of file FuncUnwinders.h.
Referenced by GetAssemblyUnwindPlan().
|
private |
Definition at line 130 of file FuncUnwinders.h.
Referenced by GetCompactUnwindUnwindPlan().
|
private |
Definition at line 128 of file FuncUnwinders.h.
Referenced by GetDebugFrameAugmentedUnwindPlan().
|
private |
Definition at line 123 of file FuncUnwinders.h.
Referenced by GetDebugFrameUnwindPlan().
|
private |
Definition at line 127 of file FuncUnwinders.h.
Referenced by GetEHFrameAugmentedUnwindPlan().
|
private |
Definition at line 122 of file FuncUnwinders.h.
Referenced by GetEHFrameUnwindPlan().
|
private |
Definition at line 133 of file FuncUnwinders.h.
Referenced by GetUnwindPlanFastUnwind().
|
private |
Definition at line 126 of file FuncUnwinders.h.
Referenced by GetObjectFileAugmentedUnwindPlan().
|
private |
Definition at line 121 of file FuncUnwinders.h.
Referenced by GetObjectFileUnwindPlan().
|
private |
Definition at line 132 of file FuncUnwinders.h.
Referenced by GetSymbolFileUnwindPlan().
|
private |
Definition at line 115 of file FuncUnwinders.h.
Referenced by GetArmUnwindUnwindPlan(), GetAssemblyUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), and GetUnwindAssemblyProfiler().