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 ModuleWasUpdated ()
 Called after an ObjectFile/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

Modulem_module
 
collection m_unwinds
 
bool m_scanned_all_unwind_sources
 
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
private

Definition at line 73 of file UnwindTable.h.

◆ iterator

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

Definition at line 72 of file UnwindTable.h.

Constructor & Destructor Documentation

◆ UnwindTable() [1/2]

UnwindTable::UnwindTable ( Module module)
explicit

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

Definition at line 32 of file UnwindTable.cpp.

◆ ~UnwindTable()

UnwindTable::~UnwindTable ( )
default

◆ UnwindTable() [2/2]

lldb_private::UnwindTable::UnwindTable ( const UnwindTable )
privatedelete

Member Function Documentation

◆ Dump()

void UnwindTable::Dump ( Stream s)
private

◆ GetAddressRange()

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

◆ GetAllowAssemblyEmulationUnwindPlans()

bool UnwindTable::GetAllowAssemblyEmulationUnwindPlans ( )

◆ GetArchitecture()

ArchSpec UnwindTable::GetArchitecture ( )

◆ GetArmUnwindInfo()

ArmUnwindInfo * UnwindTable::GetArmUnwindInfo ( )

Definition at line 200 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 185 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 157 of file UnwindTable.cpp.

References GetAddressRange(), and Initialize().

◆ Initialize()

void UnwindTable::Initialize ( )
private

◆ ModuleWasUpdated()

void UnwindTable::ModuleWasUpdated ( )

Called after an ObjectFile/SymbolFile has been added to a Module to add any new unwind sections that may now be available.

Definition at line 86 of file UnwindTable.cpp.

References m_mutex, and m_scanned_all_unwind_sources.

Referenced by lldb_private::Module::GetMemoryObjectFile(), lldb_private::Module::GetObjectFile(), and lldb_private::Module::GetSymbolFile().

◆ operator=()

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

Member Data Documentation

◆ m_arm_unwind_up

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

Definition at line 89 of file UnwindTable.h.

Referenced by GetArmUnwindInfo(), and Initialize().

◆ m_compact_unwind_up

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

Definition at line 88 of file UnwindTable.h.

Referenced by GetCompactUnwindInfo(), and Initialize().

◆ m_debug_frame_up

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

Definition at line 87 of file UnwindTable.h.

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

◆ m_eh_frame_up

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

Definition at line 86 of file UnwindTable.h.

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

◆ m_module

Module& lldb_private::UnwindTable::m_module
private

◆ m_mutex

std::mutex lldb_private::UnwindTable::m_mutex
private

◆ m_object_file_unwind_up

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

Definition at line 85 of file UnwindTable.h.

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

◆ m_scanned_all_unwind_sources

bool lldb_private::UnwindTable::m_scanned_all_unwind_sources
private

Definition at line 78 of file UnwindTable.h.

Referenced by Initialize(), and ModuleWasUpdated().

◆ m_unwinds

collection lldb_private::UnwindTable::m_unwinds
private

Definition at line 76 of file UnwindTable.h.

Referenced by Dump(), and GetFuncUnwindersContainingAddress().


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