LLDB mainline
lldb_private::FuncUnwinders Class Reference

#include <FuncUnwinders.h>

Public Member Functions

 FuncUnwinders (lldb_private::UnwindTable &unwind_table, Address addr, AddressRanges ranges)
 ~FuncUnwinders ()
 destructor
std::shared_ptr< const UnwindPlanGetUnwindPlanAtCallSite (Target &target, Thread &thread)
std::shared_ptr< const UnwindPlanGetUnwindPlanAtNonCallSite (Target &target, lldb_private::Thread &thread)
std::shared_ptr< const UnwindPlanGetUnwindPlanFastUnwind (Target &target, lldb_private::Thread &thread)
std::shared_ptr< const UnwindPlanGetUnwindPlanArchitectureDefault (lldb_private::Thread &thread)
std::shared_ptr< const UnwindPlanGetUnwindPlanArchitectureDefaultAtFunctionEntry (lldb_private::Thread &thread)
const AddressGetFunctionStartAddress () const
bool ContainsAddress (const Address &addr) const
std::shared_ptr< const UnwindPlanGetAssemblyUnwindPlan (Target &target, Thread &thread)
std::shared_ptr< const UnwindPlanGetObjectFileUnwindPlan (Target &target)
std::shared_ptr< const UnwindPlanGetObjectFileAugmentedUnwindPlan (Target &target, Thread &thread)
std::shared_ptr< const UnwindPlanGetEHFrameUnwindPlan (Target &target)
std::shared_ptr< const UnwindPlanGetEHFrameAugmentedUnwindPlan (Target &target, Thread &thread)
std::shared_ptr< const UnwindPlanGetDebugFrameUnwindPlan (Target &target)
std::shared_ptr< const UnwindPlanGetDebugFrameAugmentedUnwindPlan (Target &target, Thread &thread)
std::shared_ptr< const UnwindPlanGetCompactUnwindUnwindPlan (Target &target)
std::shared_ptr< const UnwindPlanGetArmUnwindUnwindPlan (Target &target)
std::shared_ptr< const UnwindPlanGetSymbolFileUnwindPlan (Thread &thread)
std::shared_ptr< const UnwindPlanGetArchDefaultUnwindPlan (Thread &thread)
std::shared_ptr< const UnwindPlanGetArchDefaultAtFuncEntryUnwindPlan (Thread &thread)

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 FuncUnwindersoperator= (const FuncUnwinders &)=delete

Private Attributes

UnwindTablem_unwind_table
Address m_addr
 Start address of the function described by this object.
AddressRanges m_ranges
 The address ranges of the function.
std::recursive_mutex m_mutex
std::shared_ptr< const UnwindPlanm_unwind_plan_assembly_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_object_file_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_eh_frame_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_debug_frame_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_object_file_augmented_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_eh_frame_augmented_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_debug_frame_augmented_sp
std::vector< std::shared_ptr< const UnwindPlan > > m_unwind_plan_compact_unwind
std::shared_ptr< const UnwindPlanm_unwind_plan_arm_unwind_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_symbol_file_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_fast_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_arch_default_sp
std::shared_ptr< const UnwindPlanm_unwind_plan_arch_default_at_func_entry_sp
bool m_tried_unwind_plan_assembly: 1
bool m_tried_unwind_plan_eh_frame: 1
bool m_tried_unwind_plan_object_file: 1
bool m_tried_unwind_plan_debug_frame: 1
bool m_tried_unwind_plan_object_file_augmented: 1
bool m_tried_unwind_plan_eh_frame_augmented: 1
bool m_tried_unwind_plan_debug_frame_augmented: 1
bool m_tried_unwind_plan_compact_unwind: 1
bool m_tried_unwind_plan_arm_unwind: 1
bool m_tried_unwind_plan_symbol_file: 1
bool m_tried_unwind_fast: 1
bool m_tried_unwind_arch_default: 1
bool m_tried_unwind_arch_default_at_func_entry: 1
Address m_first_non_prologue_insn

Detailed Description

Definition at line 13 of file FuncUnwinders.h.

Constructor & Destructor Documentation

◆ FuncUnwinders() [1/2]

◆ ~FuncUnwinders()

FuncUnwinders::~FuncUnwinders ( )
default

destructor

◆ FuncUnwinders() [2/2]

lldb_private::FuncUnwinders::FuncUnwinders ( const FuncUnwinders & )
privatedelete

References FuncUnwinders().

Member Function Documentation

◆ CompareUnwindPlansForIdenticalInitialPCLocation()

LazyBool FuncUnwinders::CompareUnwindPlansForIdenticalInitialPCLocation ( Thread & thread,
const std::shared_ptr< const UnwindPlan > & a,
const std::shared_ptr< const UnwindPlan > & b )
private

◆ ContainsAddress()

bool lldb_private::FuncUnwinders::ContainsAddress ( const Address & addr) const
inline

Definition at line 56 of file FuncUnwinders.h.

References lldb_private::AddressRange::ContainsFileAddress(), and m_ranges.

◆ GetArchDefaultAtFuncEntryUnwindPlan()

std::shared_ptr< const UnwindPlan > lldb_private::FuncUnwinders::GetArchDefaultAtFuncEntryUnwindPlan ( Thread & thread)

◆ GetArchDefaultUnwindPlan()

std::shared_ptr< const UnwindPlan > lldb_private::FuncUnwinders::GetArchDefaultUnwindPlan ( Thread & thread)

◆ GetArmUnwindUnwindPlan()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetArmUnwindUnwindPlan ( Target & target)

◆ GetAssemblyUnwindPlan()

◆ GetCompactUnwindUnwindPlan()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetCompactUnwindUnwindPlan ( Target & target)

◆ GetDebugFrameAugmentedUnwindPlan()

◆ GetDebugFrameUnwindPlan()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetDebugFrameUnwindPlan ( Target & target)

◆ GetEHFrameAugmentedUnwindPlan()

◆ GetEHFrameUnwindPlan()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetEHFrameUnwindPlan ( Target & target)

◆ GetFunctionStartAddress()

const Address & FuncUnwinders::GetFunctionStartAddress ( ) const

Definition at line 490 of file FuncUnwinders.cpp.

References m_addr.

◆ GetObjectFileAugmentedUnwindPlan()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetObjectFileAugmentedUnwindPlan ( Target & target,
Thread & thread )

◆ GetObjectFileUnwindPlan()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetObjectFileUnwindPlan ( Target & target)

◆ GetSymbolFileUnwindPlan()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetSymbolFileUnwindPlan ( Thread & thread)

◆ GetUnwindAssemblyProfiler()

◆ GetUnwindPlanArchitectureDefault()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanArchitectureDefault ( lldb_private::Thread & thread)

◆ GetUnwindPlanArchitectureDefaultAtFunctionEntry()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanArchitectureDefaultAtFunctionEntry ( lldb_private::Thread & thread)

◆ GetUnwindPlanAtCallSite()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanAtCallSite ( Target & target,
Thread & thread )

◆ GetUnwindPlanAtNonCallSite()

◆ GetUnwindPlanFastUnwind()

std::shared_ptr< const UnwindPlan > FuncUnwinders::GetUnwindPlanFastUnwind ( Target & target,
lldb_private::Thread & thread )

◆ operator=()

const FuncUnwinders & lldb_private::FuncUnwinders::operator= ( const FuncUnwinders & )
privatedelete

References FuncUnwinders().

Member Data Documentation

◆ m_addr

Address lldb_private::FuncUnwinders::m_addr
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().

◆ m_first_non_prologue_insn

Address lldb_private::FuncUnwinders::m_first_non_prologue_insn
private

Definition at line 147 of file FuncUnwinders.h.

Referenced by FuncUnwinders().

◆ m_mutex

◆ m_ranges

◆ m_tried_unwind_arch_default

bool lldb_private::FuncUnwinders::m_tried_unwind_arch_default
private

Definition at line 144 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetUnwindPlanArchitectureDefault().

◆ m_tried_unwind_arch_default_at_func_entry

bool lldb_private::FuncUnwinders::m_tried_unwind_arch_default_at_func_entry
private

◆ m_tried_unwind_fast

bool lldb_private::FuncUnwinders::m_tried_unwind_fast
private

Definition at line 144 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetUnwindPlanFastUnwind().

◆ m_tried_unwind_plan_arm_unwind

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_arm_unwind
private

Definition at line 143 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetArmUnwindUnwindPlan().

◆ m_tried_unwind_plan_assembly

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_assembly
private

Definition at line 136 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetAssemblyUnwindPlan().

◆ m_tried_unwind_plan_compact_unwind

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_compact_unwind
private

Definition at line 142 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetCompactUnwindUnwindPlan().

◆ m_tried_unwind_plan_debug_frame

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_debug_frame
private

Definition at line 138 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetDebugFrameUnwindPlan().

◆ m_tried_unwind_plan_debug_frame_augmented

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_debug_frame_augmented
private

Definition at line 141 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetDebugFrameAugmentedUnwindPlan().

◆ m_tried_unwind_plan_eh_frame

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_eh_frame
private

Definition at line 136 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetEHFrameUnwindPlan().

◆ m_tried_unwind_plan_eh_frame_augmented

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_eh_frame_augmented
private

Definition at line 140 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetEHFrameAugmentedUnwindPlan().

◆ m_tried_unwind_plan_object_file

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_object_file
private

Definition at line 137 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetObjectFileUnwindPlan().

◆ m_tried_unwind_plan_object_file_augmented

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_object_file_augmented
private

Definition at line 139 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetObjectFileAugmentedUnwindPlan().

◆ m_tried_unwind_plan_symbol_file

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_symbol_file
private

Definition at line 143 of file FuncUnwinders.h.

Referenced by FuncUnwinders(), and GetSymbolFileUnwindPlan().

◆ m_unwind_plan_arch_default_at_func_entry_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_arch_default_at_func_entry_sp
private

Definition at line 132 of file FuncUnwinders.h.

Referenced by GetUnwindPlanArchitectureDefaultAtFunctionEntry().

◆ m_unwind_plan_arch_default_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_arch_default_sp
private

Definition at line 131 of file FuncUnwinders.h.

Referenced by GetUnwindPlanArchitectureDefault().

◆ m_unwind_plan_arm_unwind_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_arm_unwind_sp
private

Definition at line 128 of file FuncUnwinders.h.

Referenced by GetArmUnwindUnwindPlan().

◆ m_unwind_plan_assembly_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_assembly_sp
private

Definition at line 117 of file FuncUnwinders.h.

Referenced by GetAssemblyUnwindPlan().

◆ m_unwind_plan_compact_unwind

std::vector<std::shared_ptr<const UnwindPlan> > lldb_private::FuncUnwinders::m_unwind_plan_compact_unwind
private

Definition at line 127 of file FuncUnwinders.h.

Referenced by GetCompactUnwindUnwindPlan().

◆ m_unwind_plan_debug_frame_augmented_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_debug_frame_augmented_sp
private

Definition at line 125 of file FuncUnwinders.h.

Referenced by GetDebugFrameAugmentedUnwindPlan().

◆ m_unwind_plan_debug_frame_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_debug_frame_sp
private

Definition at line 120 of file FuncUnwinders.h.

Referenced by GetDebugFrameUnwindPlan().

◆ m_unwind_plan_eh_frame_augmented_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_eh_frame_augmented_sp
private

Definition at line 124 of file FuncUnwinders.h.

Referenced by GetEHFrameAugmentedUnwindPlan().

◆ m_unwind_plan_eh_frame_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_eh_frame_sp
private

Definition at line 119 of file FuncUnwinders.h.

Referenced by GetEHFrameUnwindPlan().

◆ m_unwind_plan_fast_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_fast_sp
private

Definition at line 130 of file FuncUnwinders.h.

Referenced by GetUnwindPlanFastUnwind().

◆ m_unwind_plan_object_file_augmented_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_object_file_augmented_sp
private

Definition at line 123 of file FuncUnwinders.h.

Referenced by GetObjectFileAugmentedUnwindPlan().

◆ m_unwind_plan_object_file_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_object_file_sp
private

Definition at line 118 of file FuncUnwinders.h.

Referenced by GetObjectFileUnwindPlan().

◆ m_unwind_plan_symbol_file_sp

std::shared_ptr<const UnwindPlan> lldb_private::FuncUnwinders::m_unwind_plan_symbol_file_sp
private

Definition at line 129 of file FuncUnwinders.h.

Referenced by GetSymbolFileUnwindPlan().

◆ m_unwind_table


The documentation for this class was generated from the following files: