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

#include <UnwindTable.h>

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

Public Member Functions

 UnwindTable (Module &module)
 Create an Unwind table using the data in the given module. More...
 
 ~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, SymbolContext &sc)
 
ArchSpec GetArchitecture ()
 

Private Types

typedef std::map< lldb::addr_t, lldb::FuncUnwindersSP > collection
 
typedef collection::iterator iterator
 
typedef collection::const_iterator const_iterator
 

Private Member Functions

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

Private Attributes

Modulem_module
 
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 23 of file UnwindTable.h.

Member Typedef Documentation

◆ collection

typedef std::map<lldb::addr_t, lldb::FuncUnwindersSP> lldb_private::UnwindTable::collection
private

Definition at line 66 of file UnwindTable.h.

◆ const_iterator

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

Definition at line 68 of file UnwindTable.h.

◆ iterator

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

Definition at line 67 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 31 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()

llvm::Optional< AddressRange > UnwindTable::GetAddressRange ( const Address addr,
SymbolContext sc 
)
private

◆ GetAllowAssemblyEmulationUnwindPlans()

bool UnwindTable::GetAllowAssemblyEmulationUnwindPlans ( )

◆ GetArchitecture()

ArchSpec UnwindTable::GetArchitecture ( )

◆ GetArmUnwindInfo()

ArmUnwindInfo * UnwindTable::GetArmUnwindInfo ( )

Definition at line 196 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 181 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,
SymbolContext sc 
)

Definition at line 153 of file UnwindTable.cpp.

References GetAddressRange(), and Initialize().

◆ Initialize()

void UnwindTable::Initialize ( )
private

◆ 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 80 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 79 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 78 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 77 of file UnwindTable.h.

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

◆ m_initialized

bool lldb_private::UnwindTable::m_initialized
private

Definition at line 73 of file UnwindTable.h.

Referenced by Initialize().

◆ m_module

Module& lldb_private::UnwindTable::m_module
private

◆ m_mutex

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

Definition at line 74 of file UnwindTable.h.

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

◆ m_object_file_unwind_up

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

Definition at line 76 of file UnwindTable.h.

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

◆ m_unwinds

collection lldb_private::UnwindTable::m_unwinds
private

Definition at line 71 of file UnwindTable.h.

Referenced by Dump(), and GetFuncUnwindersContainingAddress().


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