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

#include <UnwindTable.h>

Public Member Functions

 UnwindTable (Module &module)
 Create an Unwind table using the data in the given module.
 ~UnwindTable ()
lldb_private::CallFrameInfoGetObjectFileUnwindInfo ()
lldb_private::DWARFCallFrameInfoGetEHFrameInfo ()
lldb_private::DWARFCallFrameInfoGetDebugFrameInfo ()
lldb_private::CompactUnwindInfoGetCompactUnwindInfo ()
ArmUnwindInfoGetArmUnwindInfo ()
SymbolFileGetSymbolFile ()
lldb::FuncUnwindersSP GetFuncUnwindersContainingAddress (const Address &addr, SymbolContext &sc)
bool GetAllowAssemblyEmulationUnwindPlans ()
lldb::FuncUnwindersSP GetUncachedFuncUnwindersContainingAddress (const Address &addr, const SymbolContext &sc)
ArchSpec GetArchitecture ()
void Update ()
 Called after a SymbolFile has been added to a Module to add any new unwind sections that may now be available.

Private Types

typedef std::map< lldb::addr_t, lldb::FuncUnwindersSPcollection
typedef collection::iterator iterator
typedef collection::const_iterator const_iterator

Private Member Functions

void Dump (Stream &s)
void Initialize ()
std::optional< AddressRangeGetAddressRange (const Address &addr, const SymbolContext &sc)
 UnwindTable (const UnwindTable &)=delete
const UnwindTableoperator= (const UnwindTable &)=delete

Private Attributes

collection m_unwinds
bool m_initialized
std::mutex m_mutex
std::unique_ptr< CallFrameInfom_object_file_unwind_up
std::unique_ptr< DWARFCallFrameInfom_eh_frame_up
std::unique_ptr< DWARFCallFrameInfom_debug_frame_up
std::unique_ptr< CompactUnwindInfom_compact_unwind_up
std::unique_ptr< ArmUnwindInfom_arm_unwind_up

Detailed Description

Definition at line 24 of file UnwindTable.h.

Member Typedef Documentation

◆ collection

Definition at line 71 of file UnwindTable.h.

◆ const_iterator

typedef collection::const_iterator lldb_private::UnwindTable::const_iterator

Definition at line 73 of file UnwindTable.h.

◆ iterator

typedef collection::iterator lldb_private::UnwindTable::iterator

Definition at line 72 of file UnwindTable.h.

Constructor & Destructor Documentation

◆ UnwindTable() [1/2]

UnwindTable::UnwindTable ( Module module)

Create an Unwind table using the data in the given module.

Definition at line 32 of file UnwindTable.cpp.

◆ ~UnwindTable()

UnwindTable::~UnwindTable ( )

◆ UnwindTable() [2/2]

lldb_private::UnwindTable::UnwindTable ( const UnwindTable )

Member Function Documentation

◆ Dump()

void UnwindTable::Dump ( Stream s)

◆ GetAddressRange()

std::optional< AddressRange > UnwindTable::GetAddressRange ( const Address addr,
const SymbolContext sc 

◆ GetAllowAssemblyEmulationUnwindPlans()

bool UnwindTable::GetAllowAssemblyEmulationUnwindPlans ( )

◆ GetArchitecture()

ArchSpec UnwindTable::GetArchitecture ( )

◆ GetArmUnwindInfo()

ArmUnwindInfo * UnwindTable::GetArmUnwindInfo ( )

Definition at line 241 of file UnwindTable.cpp.

References Initialize(), and m_arm_unwind_up.

Referenced by lldb_private::FuncUnwinders::GetArmUnwindUnwindPlan().

◆ GetCompactUnwindInfo()

CompactUnwindInfo * UnwindTable::GetCompactUnwindInfo ( )

◆ GetDebugFrameInfo()

DWARFCallFrameInfo * UnwindTable::GetDebugFrameInfo ( )

◆ GetEHFrameInfo()

DWARFCallFrameInfo * UnwindTable::GetEHFrameInfo ( )

Definition at line 226 of file UnwindTable.cpp.

References Initialize(), and m_eh_frame_up.

Referenced by lldb_private::FuncUnwinders::GetEHFrameUnwindPlan().

◆ GetFuncUnwindersContainingAddress()

FuncUnwindersSP UnwindTable::GetFuncUnwindersContainingAddress ( const Address addr,
SymbolContext sc 

◆ GetObjectFileUnwindInfo()

lldb_private::CallFrameInfo * UnwindTable::GetObjectFileUnwindInfo ( )

◆ GetSymbolFile()

SymbolFile * UnwindTable::GetSymbolFile ( )

◆ GetUncachedFuncUnwindersContainingAddress()

FuncUnwindersSP UnwindTable::GetUncachedFuncUnwindersContainingAddress ( const Address addr,
const SymbolContext sc 

Definition at line 198 of file UnwindTable.cpp.

References GetAddressRange(), and Initialize().

◆ Initialize()

void UnwindTable::Initialize ( )

◆ operator=()

const UnwindTable & lldb_private::UnwindTable::operator= ( const UnwindTable )

◆ Update()

void UnwindTable::Update ( )

Member Data Documentation

◆ m_arm_unwind_up

std::unique_ptr<ArmUnwindInfo> lldb_private::UnwindTable::m_arm_unwind_up

Definition at line 85 of file UnwindTable.h.

Referenced by GetArmUnwindInfo(), Initialize(), and Update().

◆ m_compact_unwind_up

std::unique_ptr<CompactUnwindInfo> lldb_private::UnwindTable::m_compact_unwind_up

Definition at line 84 of file UnwindTable.h.

Referenced by GetCompactUnwindInfo(), Initialize(), and Update().

◆ m_debug_frame_up

std::unique_ptr<DWARFCallFrameInfo> lldb_private::UnwindTable::m_debug_frame_up

Definition at line 83 of file UnwindTable.h.

Referenced by GetAddressRange(), GetDebugFrameInfo(), Initialize(), and Update().

◆ m_eh_frame_up

std::unique_ptr<DWARFCallFrameInfo> lldb_private::UnwindTable::m_eh_frame_up

Definition at line 82 of file UnwindTable.h.

Referenced by GetAddressRange(), GetEHFrameInfo(), Initialize(), and Update().

◆ m_initialized

bool lldb_private::UnwindTable::m_initialized

Definition at line 78 of file UnwindTable.h.

Referenced by Initialize(), and Update().

◆ m_module

Module& lldb_private::UnwindTable::m_module

◆ m_mutex

std::mutex lldb_private::UnwindTable::m_mutex

Definition at line 79 of file UnwindTable.h.

Referenced by Dump(), GetFuncUnwindersContainingAddress(), Initialize(), and Update().

◆ m_object_file_unwind_up

std::unique_ptr<CallFrameInfo> lldb_private::UnwindTable::m_object_file_unwind_up

Definition at line 81 of file UnwindTable.h.

Referenced by GetAddressRange(), GetObjectFileUnwindInfo(), Initialize(), and Update().

◆ m_unwinds

collection lldb_private::UnwindTable::m_unwinds

Definition at line 76 of file UnwindTable.h.

Referenced by Dump(), and GetFuncUnwindersContainingAddress().

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