LLDB mainline
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, const 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 ()
AddressRanges GetAddressRanges (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.

References m_arm_unwind_up, m_compact_unwind_up, m_eh_frame_up, m_module, m_mutex, m_object_file_unwind_up, m_scanned_all_unwind_sources, and m_unwinds.

Referenced by operator=(), and UnwindTable().

◆ ~UnwindTable()

UnwindTable::~UnwindTable ( )
default

◆ UnwindTable() [2/2]

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

References UnwindTable().

Member Function Documentation

◆ Dump()

void UnwindTable::Dump ( Stream & s)
private

◆ GetAddressRanges()

◆ GetAllowAssemblyEmulationUnwindPlans()

bool UnwindTable::GetAllowAssemblyEmulationUnwindPlans ( )

Definition at line 218 of file UnwindTable.cpp.

References m_module.

◆ GetArchitecture()

ArchSpec UnwindTable::GetArchitecture ( )

Definition at line 216 of file UnwindTable.cpp.

References m_module.

◆ GetArmUnwindInfo()

ArmUnwindInfo * UnwindTable::GetArmUnwindInfo ( )

Definition at line 209 of file UnwindTable.cpp.

References Initialize(), and m_arm_unwind_up.

◆ GetCompactUnwindInfo()

CompactUnwindInfo * UnwindTable::GetCompactUnwindInfo ( )

Definition at line 204 of file UnwindTable.cpp.

References Initialize(), and m_compact_unwind_up.

◆ GetDebugFrameInfo()

DWARFCallFrameInfo * UnwindTable::GetDebugFrameInfo ( )

Definition at line 199 of file UnwindTable.cpp.

References Initialize(), and m_debug_frame_up.

◆ GetEHFrameInfo()

DWARFCallFrameInfo * UnwindTable::GetEHFrameInfo ( )

Definition at line 194 of file UnwindTable.cpp.

References Initialize(), and m_eh_frame_up.

◆ GetFuncUnwindersContainingAddress()

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

◆ GetObjectFileUnwindInfo()

lldb_private::CallFrameInfo * UnwindTable::GetObjectFileUnwindInfo ( )

Definition at line 189 of file UnwindTable.cpp.

References Initialize(), and m_object_file_unwind_up.

◆ GetSymbolFile()

SymbolFile * UnwindTable::GetSymbolFile ( )

Definition at line 214 of file UnwindTable.cpp.

References m_module.

◆ GetUncachedFuncUnwindersContainingAddress()

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

◆ Initialize()

◆ 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, m_scanned_all_unwind_sources, and m_unwinds.

◆ operator=()

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

References UnwindTable().

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(), Initialize(), and UnwindTable().

◆ 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(), Initialize(), and UnwindTable().

◆ 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 GetAddressRanges(), 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 GetAddressRanges(), GetEHFrameInfo(), Initialize(), and UnwindTable().

◆ 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 GetAddressRanges(), GetObjectFileUnwindInfo(), Initialize(), and UnwindTable().

◆ 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(), ModuleWasUpdated(), and UnwindTable().

◆ m_unwinds

collection lldb_private::UnwindTable::m_unwinds
private

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