LLDB mainline
|
#include <FuncUnwinders.h>
Private Member Functions | |
lldb::UnwindAssemblySP | GetUnwindAssemblyProfiler (Target &target) |
lldb_private::LazyBool | CompareUnwindPlansForIdenticalInitialPCLocation (Thread &thread, const std::shared_ptr< const UnwindPlan > &a, const std::shared_ptr< const UnwindPlan > &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, |
Address | addr, | ||
AddressRanges | ranges ) |
Definition at line 34 of file FuncUnwinders.cpp.
References m_addr, m_first_non_prologue_insn, m_ranges, m_tried_unwind_arch_default, m_tried_unwind_arch_default_at_func_entry, m_tried_unwind_fast, m_tried_unwind_plan_arm_unwind, m_tried_unwind_plan_assembly, m_tried_unwind_plan_compact_unwind, m_tried_unwind_plan_debug_frame, m_tried_unwind_plan_debug_frame_augmented, m_tried_unwind_plan_eh_frame, m_tried_unwind_plan_eh_frame_augmented, m_tried_unwind_plan_object_file, m_tried_unwind_plan_object_file_augmented, m_tried_unwind_plan_symbol_file, and m_unwind_table.
Referenced by FuncUnwinders(), and operator=().
|
default |
destructor
|
privatedelete |
References FuncUnwinders().
|
private |
Definition at line 349 of file FuncUnwinders.cpp.
References lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, lldb::eRegisterKindGeneric, RegisterNumber::GetAsKind(), lldb_private::UnwindPlan::Row::GetCFAValue(), lldb_private::UnwindPlan::Row::GetRegisterInfo(), and LLDB_REGNUM_GENERIC_PC.
Referenced by GetUnwindPlanAtNonCallSite().
Definition at line 56 of file FuncUnwinders.h.
References lldb_private::AddressRange::ContainsFileAddress(), and m_ranges.
std::shared_ptr< const UnwindPlan > lldb_private::FuncUnwinders::GetArchDefaultAtFuncEntryUnwindPlan | ( | Thread & | thread | ) |
std::shared_ptr< const UnwindPlan > lldb_private::FuncUnwinders::GetArchDefaultUnwindPlan | ( | Thread & | thread | ) |
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetArmUnwindUnwindPlan | ( | Target & | target | ) |
Definition at line 153 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::ArmUnwindInfo::GetUnwindPlan(), m_mutex, m_ranges, m_tried_unwind_plan_arm_unwind, m_unwind_plan_arm_unwind_sp, and m_unwind_table.
Referenced by GetUnwindPlanAtCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetAssemblyUnwindPlan | ( | Target & | target, |
Thread & | thread ) |
Definition at line 316 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::AddressRange::GetByteSize(), GetUnwindAssemblyProfiler(), m_mutex, m_ranges, m_tried_unwind_plan_assembly, m_unwind_plan_assembly_sp, m_unwind_table, and lldb_private::AddressRange::SetByteSize().
Referenced by GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetCompactUnwindUnwindPlan | ( | Target & | target | ) |
Definition at line 81 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, lldb_private::CompactUnwindInfo::GetUnwindPlan(), m_mutex, m_ranges, m_tried_unwind_plan_compact_unwind, m_unwind_plan_compact_unwind, and m_unwind_table.
Referenced by GetUnwindPlanAtCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetDebugFrameAugmentedUnwindPlan | ( | Target & | target, |
Thread & | thread ) |
Definition at line 275 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_ranges, m_tried_unwind_plan_debug_frame_augmented, and m_unwind_plan_debug_frame_augmented_sp.
Referenced by GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetDebugFrameUnwindPlan | ( | Target & | target | ) |
Definition at line 138 of file FuncUnwinders.cpp.
References m_addr, m_mutex, m_ranges, m_tried_unwind_plan_debug_frame, m_unwind_plan_debug_frame_sp, and m_unwind_table.
Referenced by GetDebugFrameAugmentedUnwindPlan(), GetUnwindPlanAtCallSite(), and GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetEHFrameAugmentedUnwindPlan | ( | Target & | target, |
Thread & | thread ) |
Definition at line 237 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_ranges, m_tried_unwind_plan_eh_frame_augmented, and m_unwind_plan_eh_frame_augmented_sp.
Referenced by GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetEHFrameUnwindPlan | ( | Target & | target | ) |
Definition at line 124 of file FuncUnwinders.cpp.
References m_addr, m_mutex, m_ranges, m_tried_unwind_plan_eh_frame, m_unwind_plan_eh_frame_sp, and m_unwind_table.
Referenced by GetEHFrameAugmentedUnwindPlan(), GetUnwindPlanAtCallSite(), and GetUnwindPlanAtNonCallSite().
const Address & FuncUnwinders::GetFunctionStartAddress | ( | ) | const |
Definition at line 490 of file FuncUnwinders.cpp.
References m_addr.
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetObjectFileAugmentedUnwindPlan | ( | Target & | target, |
Thread & | thread ) |
Definition at line 207 of file FuncUnwinders.cpp.
References GetObjectFileUnwindPlan(), GetUnwindAssemblyProfiler(), m_mutex, m_ranges, m_tried_unwind_plan_object_file_augmented, and m_unwind_plan_object_file_augmented_sp.
Referenced by GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetObjectFileUnwindPlan | ( | Target & | target | ) |
Definition at line 109 of file FuncUnwinders.cpp.
References m_addr, m_mutex, m_ranges, m_tried_unwind_plan_object_file, m_unwind_plan_object_file_sp, and m_unwind_table.
Referenced by GetObjectFileAugmentedUnwindPlan(), GetUnwindPlanAtCallSite(), and GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetSymbolFileUnwindPlan | ( | Thread & | thread | ) |
Definition at line 191 of file FuncUnwinders.cpp.
References m_mutex, m_ranges, 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 493 of file FuncUnwinders.cpp.
References lldb_private::UnwindAssembly::FindPlugin(), lldb_private::Target::GetArchitecture(), and m_unwind_table.
Referenced by GetAssemblyUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetObjectFileAugmentedUnwindPlan(), and GetUnwindPlanFastUnwind().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanArchitectureDefault | ( | lldb_private::Thread & | thread | ) |
Definition at line 453 of file FuncUnwinders.cpp.
References m_mutex, m_tried_unwind_arch_default, and m_unwind_plan_arch_default_sp.
Referenced by GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanArchitectureDefaultAtFunctionEntry | ( | lldb_private::Thread & | thread | ) |
Definition at line 470 of file FuncUnwinders.cpp.
References m_mutex, m_tried_unwind_arch_default_at_func_entry, and m_unwind_plan_arch_default_at_func_entry_sp.
Referenced by GetUnwindPlanAtNonCallSite().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanAtCallSite | ( | Target & | target, |
Thread & | thread ) |
Definition at line 56 of file FuncUnwinders.cpp.
References GetArmUnwindUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), and m_mutex.
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanAtNonCallSite | ( | Target & | target, |
lldb_private::Thread & | thread ) |
Definition at line 379 of file FuncUnwinders.cpp.
References CompareUnwindPlansForIdenticalInitialPCLocation(), lldb_private::eLazyBoolNo, GetAssemblyUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileAugmentedUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), GetUnwindPlanArchitectureDefault(), and GetUnwindPlanArchitectureDefaultAtFunctionEntry().
std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanFastUnwind | ( | Target & | target, |
lldb_private::Thread & | thread ) |
Definition at line 436 of file FuncUnwinders.cpp.
References lldb::eRegisterKindGeneric, GetUnwindAssemblyProfiler(), m_mutex, m_ranges, m_tried_unwind_fast, and m_unwind_plan_fast_sp.
|
privatedelete |
References FuncUnwinders().
|
private |
Start address of the function described by this object.
Definition at line 110 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), GetDebugFrameUnwindPlan(), GetEHFrameUnwindPlan(), GetFunctionStartAddress(), and GetObjectFileUnwindPlan().
|
private |
Definition at line 147 of file FuncUnwinders.h.
Referenced by FuncUnwinders().
|
private |
Definition at line 115 of file FuncUnwinders.h.
Referenced by GetArmUnwindUnwindPlan(), GetAssemblyUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileAugmentedUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), GetUnwindPlanArchitectureDefault(), GetUnwindPlanArchitectureDefaultAtFunctionEntry(), GetUnwindPlanAtCallSite(), and GetUnwindPlanFastUnwind().
|
private |
The address ranges of the function.
Definition at line 113 of file FuncUnwinders.h.
Referenced by ContainsAddress(), FuncUnwinders(), GetArmUnwindUnwindPlan(), GetAssemblyUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameAugmentedUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameAugmentedUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileAugmentedUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), and GetUnwindPlanFastUnwind().
|
private |
Definition at line 144 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetUnwindPlanArchitectureDefault().
|
private |
Definition at line 145 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetUnwindPlanArchitectureDefaultAtFunctionEntry().
|
private |
Definition at line 144 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetUnwindPlanFastUnwind().
|
private |
Definition at line 143 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetArmUnwindUnwindPlan().
|
private |
Definition at line 136 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetAssemblyUnwindPlan().
|
private |
Definition at line 142 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetCompactUnwindUnwindPlan().
|
private |
Definition at line 138 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetDebugFrameUnwindPlan().
|
private |
Definition at line 141 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetDebugFrameAugmentedUnwindPlan().
|
private |
Definition at line 136 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetEHFrameUnwindPlan().
|
private |
Definition at line 140 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetEHFrameAugmentedUnwindPlan().
|
private |
Definition at line 137 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetObjectFileUnwindPlan().
|
private |
Definition at line 139 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetObjectFileAugmentedUnwindPlan().
|
private |
Definition at line 143 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), and GetSymbolFileUnwindPlan().
|
private |
Definition at line 132 of file FuncUnwinders.h.
Referenced by GetUnwindPlanArchitectureDefaultAtFunctionEntry().
|
private |
Definition at line 131 of file FuncUnwinders.h.
Referenced by GetUnwindPlanArchitectureDefault().
|
private |
Definition at line 128 of file FuncUnwinders.h.
Referenced by GetArmUnwindUnwindPlan().
|
private |
Definition at line 117 of file FuncUnwinders.h.
Referenced by GetAssemblyUnwindPlan().
|
private |
Definition at line 127 of file FuncUnwinders.h.
Referenced by GetCompactUnwindUnwindPlan().
|
private |
Definition at line 125 of file FuncUnwinders.h.
Referenced by GetDebugFrameAugmentedUnwindPlan().
|
private |
Definition at line 120 of file FuncUnwinders.h.
Referenced by GetDebugFrameUnwindPlan().
|
private |
Definition at line 124 of file FuncUnwinders.h.
Referenced by GetEHFrameAugmentedUnwindPlan().
|
private |
Definition at line 119 of file FuncUnwinders.h.
Referenced by GetEHFrameUnwindPlan().
|
private |
Definition at line 130 of file FuncUnwinders.h.
Referenced by GetUnwindPlanFastUnwind().
|
private |
Definition at line 123 of file FuncUnwinders.h.
Referenced by GetObjectFileAugmentedUnwindPlan().
|
private |
Definition at line 118 of file FuncUnwinders.h.
Referenced by GetObjectFileUnwindPlan().
|
private |
Definition at line 129 of file FuncUnwinders.h.
Referenced by GetSymbolFileUnwindPlan().
|
private |
Definition at line 107 of file FuncUnwinders.h.
Referenced by FuncUnwinders(), GetArmUnwindUnwindPlan(), GetAssemblyUnwindPlan(), GetCompactUnwindUnwindPlan(), GetDebugFrameUnwindPlan(), GetEHFrameUnwindPlan(), GetObjectFileUnwindPlan(), GetSymbolFileUnwindPlan(), and GetUnwindAssemblyProfiler().