LLDB  mainline
Public Member Functions | Private Member Functions | Private Attributes | List of all members
lldb_private::FuncUnwinders Class Reference

#include <FuncUnwinders.h>

Collaboration diagram for lldb_private::FuncUnwinders:
Collaboration graph
[legend]

Public Member Functions

 FuncUnwinders (lldb_private::UnwindTable &unwind_table, AddressRange range)
 constructor More...
 
 ~FuncUnwinders ()
 destructor More...
 
lldb::UnwindPlanSP GetUnwindPlanAtCallSite (Target &target, Thread &thread)
 
lldb::UnwindPlanSP GetUnwindPlanAtNonCallSite (Target &target, lldb_private::Thread &thread)
 
lldb::UnwindPlanSP GetUnwindPlanFastUnwind (Target &target, lldb_private::Thread &thread)
 
lldb::UnwindPlanSP GetUnwindPlanArchitectureDefault (lldb_private::Thread &thread)
 
lldb::UnwindPlanSP GetUnwindPlanArchitectureDefaultAtFunctionEntry (lldb_private::Thread &thread)
 
AddressGetFirstNonPrologueInsn (Target &target)
 
const AddressGetFunctionStartAddress () const
 
bool ContainsAddress (const Address &addr) const
 
Address GetLSDAAddress (Target &target)
 
Address GetPersonalityRoutinePtrAddress (Target &target)
 
lldb::UnwindPlanSP GetAssemblyUnwindPlan (Target &target, Thread &thread)
 
lldb::UnwindPlanSP GetObjectFileUnwindPlan (Target &target)
 
lldb::UnwindPlanSP GetObjectFileAugmentedUnwindPlan (Target &target, Thread &thread)
 
lldb::UnwindPlanSP GetEHFrameUnwindPlan (Target &target)
 
lldb::UnwindPlanSP GetEHFrameAugmentedUnwindPlan (Target &target, Thread &thread)
 
lldb::UnwindPlanSP GetDebugFrameUnwindPlan (Target &target)
 
lldb::UnwindPlanSP GetDebugFrameAugmentedUnwindPlan (Target &target, Thread &thread)
 
lldb::UnwindPlanSP GetCompactUnwindUnwindPlan (Target &target)
 
lldb::UnwindPlanSP GetArmUnwindUnwindPlan (Target &target)
 
lldb::UnwindPlanSP GetSymbolFileUnwindPlan (Thread &thread)
 
lldb::UnwindPlanSP GetArchDefaultUnwindPlan (Thread &thread)
 
lldb::UnwindPlanSP GetArchDefaultAtFuncEntryUnwindPlan (Thread &thread)
 

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

Private Attributes

UnwindTablem_unwind_table
 
AddressRange m_range
 
std::recursive_mutex m_mutex
 
lldb::UnwindPlanSP m_unwind_plan_assembly_sp
 
lldb::UnwindPlanSP m_unwind_plan_object_file_sp
 
lldb::UnwindPlanSP m_unwind_plan_eh_frame_sp
 
lldb::UnwindPlanSP m_unwind_plan_debug_frame_sp
 
lldb::UnwindPlanSP m_unwind_plan_object_file_augmented_sp
 
lldb::UnwindPlanSP m_unwind_plan_eh_frame_augmented_sp
 
lldb::UnwindPlanSP m_unwind_plan_debug_frame_augmented_sp
 
std::vector< lldb::UnwindPlanSP > m_unwind_plan_compact_unwind
 
lldb::UnwindPlanSP m_unwind_plan_arm_unwind_sp
 
lldb::UnwindPlanSP m_unwind_plan_symbol_file_sp
 
lldb::UnwindPlanSP m_unwind_plan_fast_sp
 
lldb::UnwindPlanSP m_unwind_plan_arch_default_sp
 
lldb::UnwindPlanSP m_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 ( lldb_private::UnwindTable unwind_table,
AddressRange  range 
)

constructor

Definition at line 36 of file FuncUnwinders.cpp.

◆ ~FuncUnwinders()

FuncUnwinders::~FuncUnwinders ( )
default

destructor

◆ FuncUnwinders() [2/2]

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

Member Function Documentation

◆ CompareUnwindPlansForIdenticalInitialPCLocation()

LazyBool FuncUnwinders::CompareUnwindPlansForIdenticalInitialPCLocation ( Thread thread,
const lldb::UnwindPlanSP &  a,
const lldb::UnwindPlanSP &  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_range.

◆ GetArchDefaultAtFuncEntryUnwindPlan()

lldb::UnwindPlanSP lldb_private::FuncUnwinders::GetArchDefaultAtFuncEntryUnwindPlan ( Thread thread)

◆ GetArchDefaultUnwindPlan()

lldb::UnwindPlanSP lldb_private::FuncUnwinders::GetArchDefaultUnwindPlan ( Thread thread)

◆ GetArmUnwindUnwindPlan()

UnwindPlanSP FuncUnwinders::GetArmUnwindUnwindPlan ( Target target)

◆ GetAssemblyUnwindPlan()

UnwindPlanSP FuncUnwinders::GetAssemblyUnwindPlan ( Target target,
Thread thread 
)

◆ GetCompactUnwindUnwindPlan()

UnwindPlanSP FuncUnwinders::GetCompactUnwindUnwindPlan ( Target target)

◆ GetDebugFrameAugmentedUnwindPlan()

UnwindPlanSP FuncUnwinders::GetDebugFrameAugmentedUnwindPlan ( Target target,
Thread thread 
)

◆ GetDebugFrameUnwindPlan()

UnwindPlanSP FuncUnwinders::GetDebugFrameUnwindPlan ( Target target)

◆ GetEHFrameAugmentedUnwindPlan()

UnwindPlanSP FuncUnwinders::GetEHFrameAugmentedUnwindPlan ( Target target,
Thread thread 
)

◆ GetEHFrameUnwindPlan()

UnwindPlanSP FuncUnwinders::GetEHFrameUnwindPlan ( Target target)

◆ GetFirstNonPrologueInsn()

Address & FuncUnwinders::GetFirstNonPrologueInsn ( Target target)

◆ GetFunctionStartAddress()

const Address & FuncUnwinders::GetFunctionStartAddress ( ) const

Definition at line 516 of file FuncUnwinders.cpp.

References lldb_private::AddressRange::GetBaseAddress(), and m_range.

◆ GetLSDAAddress()

Address FuncUnwinders::GetLSDAAddress ( Target target)

◆ GetObjectFileAugmentedUnwindPlan()

UnwindPlanSP FuncUnwinders::GetObjectFileAugmentedUnwindPlan ( Target target,
Thread thread 
)

◆ GetObjectFileUnwindPlan()

lldb::UnwindPlanSP FuncUnwinders::GetObjectFileUnwindPlan ( Target target)

◆ GetPersonalityRoutinePtrAddress()

Address FuncUnwinders::GetPersonalityRoutinePtrAddress ( Target target)

◆ GetSymbolFileUnwindPlan()

UnwindPlanSP FuncUnwinders::GetSymbolFileUnwindPlan ( Thread thread)

◆ GetUnwindAssemblyProfiler()

lldb::UnwindAssemblySP FuncUnwinders::GetUnwindAssemblyProfiler ( Target target)
private

◆ GetUnwindPlanArchitectureDefault()

UnwindPlanSP FuncUnwinders::GetUnwindPlanArchitectureDefault ( lldb_private::Thread thread)

◆ GetUnwindPlanArchitectureDefaultAtFunctionEntry()

UnwindPlanSP FuncUnwinders::GetUnwindPlanArchitectureDefaultAtFunctionEntry ( lldb_private::Thread thread)

◆ GetUnwindPlanAtCallSite()

UnwindPlanSP FuncUnwinders::GetUnwindPlanAtCallSite ( Target target,
Thread thread 
)

◆ GetUnwindPlanAtNonCallSite()

UnwindPlanSP FuncUnwinders::GetUnwindPlanAtNonCallSite ( Target target,
lldb_private::Thread thread 
)

◆ GetUnwindPlanFastUnwind()

UnwindPlanSP FuncUnwinders::GetUnwindPlanFastUnwind ( Target target,
lldb_private::Thread thread 
)

◆ operator=()

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

Member Data Documentation

◆ m_first_non_prologue_insn

Address lldb_private::FuncUnwinders::m_first_non_prologue_insn
private

Definition at line 150 of file FuncUnwinders.h.

Referenced by GetFirstNonPrologueInsn().

◆ m_mutex

std::recursive_mutex lldb_private::FuncUnwinders::m_mutex
private

◆ m_range

AddressRange lldb_private::FuncUnwinders::m_range
private

◆ m_tried_unwind_arch_default

bool lldb_private::FuncUnwinders::m_tried_unwind_arch_default
private

Definition at line 147 of file FuncUnwinders.h.

Referenced by GetUnwindPlanArchitectureDefault().

◆ m_tried_unwind_arch_default_at_func_entry

bool lldb_private::FuncUnwinders::m_tried_unwind_arch_default_at_func_entry
private

Definition at line 148 of file FuncUnwinders.h.

Referenced by GetUnwindPlanArchitectureDefaultAtFunctionEntry().

◆ m_tried_unwind_fast

bool lldb_private::FuncUnwinders::m_tried_unwind_fast
private

Definition at line 147 of file FuncUnwinders.h.

Referenced by GetUnwindPlanFastUnwind().

◆ m_tried_unwind_plan_arm_unwind

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_arm_unwind
private

Definition at line 146 of file FuncUnwinders.h.

Referenced by GetArmUnwindUnwindPlan().

◆ m_tried_unwind_plan_assembly

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_assembly
private

Definition at line 139 of file FuncUnwinders.h.

Referenced by GetAssemblyUnwindPlan().

◆ m_tried_unwind_plan_compact_unwind

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_compact_unwind
private

Definition at line 145 of file FuncUnwinders.h.

Referenced by GetCompactUnwindUnwindPlan().

◆ m_tried_unwind_plan_debug_frame

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_debug_frame
private

Definition at line 141 of file FuncUnwinders.h.

Referenced by GetDebugFrameUnwindPlan().

◆ m_tried_unwind_plan_debug_frame_augmented

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_debug_frame_augmented
private

Definition at line 144 of file FuncUnwinders.h.

Referenced by GetDebugFrameAugmentedUnwindPlan().

◆ m_tried_unwind_plan_eh_frame

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_eh_frame
private

Definition at line 139 of file FuncUnwinders.h.

Referenced by GetEHFrameUnwindPlan().

◆ m_tried_unwind_plan_eh_frame_augmented

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_eh_frame_augmented
private

Definition at line 143 of file FuncUnwinders.h.

Referenced by GetEHFrameAugmentedUnwindPlan().

◆ m_tried_unwind_plan_object_file

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_object_file
private

Definition at line 140 of file FuncUnwinders.h.

Referenced by GetObjectFileUnwindPlan().

◆ m_tried_unwind_plan_object_file_augmented

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_object_file_augmented
private

Definition at line 142 of file FuncUnwinders.h.

Referenced by GetObjectFileAugmentedUnwindPlan().

◆ m_tried_unwind_plan_symbol_file

bool lldb_private::FuncUnwinders::m_tried_unwind_plan_symbol_file
private

Definition at line 146 of file FuncUnwinders.h.

Referenced by GetSymbolFileUnwindPlan().

◆ m_unwind_plan_arch_default_at_func_entry_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_arch_default_at_func_entry_sp
private

Definition at line 135 of file FuncUnwinders.h.

Referenced by GetUnwindPlanArchitectureDefaultAtFunctionEntry().

◆ m_unwind_plan_arch_default_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_arch_default_sp
private

Definition at line 134 of file FuncUnwinders.h.

Referenced by GetUnwindPlanArchitectureDefault().

◆ m_unwind_plan_arm_unwind_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_arm_unwind_sp
private

Definition at line 131 of file FuncUnwinders.h.

Referenced by GetArmUnwindUnwindPlan().

◆ m_unwind_plan_assembly_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_assembly_sp
private

Definition at line 120 of file FuncUnwinders.h.

Referenced by GetAssemblyUnwindPlan().

◆ m_unwind_plan_compact_unwind

std::vector<lldb::UnwindPlanSP> lldb_private::FuncUnwinders::m_unwind_plan_compact_unwind
private

Definition at line 130 of file FuncUnwinders.h.

Referenced by GetCompactUnwindUnwindPlan().

◆ m_unwind_plan_debug_frame_augmented_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_debug_frame_augmented_sp
private

Definition at line 128 of file FuncUnwinders.h.

Referenced by GetDebugFrameAugmentedUnwindPlan().

◆ m_unwind_plan_debug_frame_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_debug_frame_sp
private

Definition at line 123 of file FuncUnwinders.h.

Referenced by GetDebugFrameUnwindPlan().

◆ m_unwind_plan_eh_frame_augmented_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_eh_frame_augmented_sp
private

Definition at line 127 of file FuncUnwinders.h.

Referenced by GetEHFrameAugmentedUnwindPlan().

◆ m_unwind_plan_eh_frame_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_eh_frame_sp
private

Definition at line 122 of file FuncUnwinders.h.

Referenced by GetEHFrameUnwindPlan().

◆ m_unwind_plan_fast_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_fast_sp
private

Definition at line 133 of file FuncUnwinders.h.

Referenced by GetUnwindPlanFastUnwind().

◆ m_unwind_plan_object_file_augmented_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_object_file_augmented_sp
private

Definition at line 126 of file FuncUnwinders.h.

Referenced by GetObjectFileAugmentedUnwindPlan().

◆ m_unwind_plan_object_file_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_object_file_sp
private

Definition at line 121 of file FuncUnwinders.h.

Referenced by GetObjectFileUnwindPlan().

◆ m_unwind_plan_symbol_file_sp

lldb::UnwindPlanSP lldb_private::FuncUnwinders::m_unwind_plan_symbol_file_sp
private

Definition at line 132 of file FuncUnwinders.h.

Referenced by GetSymbolFileUnwindPlan().

◆ m_unwind_table

UnwindTable& lldb_private::FuncUnwinders::m_unwind_table
private

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