LLDB mainline
|
#include <UnwindTable.h>
Public Member Functions | |
UnwindTable (Module &module) | |
Create an Unwind table using the data in the given module. | |
~UnwindTable () | |
lldb_private::CallFrameInfo * | GetObjectFileUnwindInfo () |
lldb_private::DWARFCallFrameInfo * | GetEHFrameInfo () |
lldb_private::DWARFCallFrameInfo * | GetDebugFrameInfo () |
lldb_private::CompactUnwindInfo * | GetCompactUnwindInfo () |
ArmUnwindInfo * | GetArmUnwindInfo () |
SymbolFile * | GetSymbolFile () |
lldb::FuncUnwindersSP | GetFuncUnwindersContainingAddress (const Address &addr, SymbolContext &sc) |
bool | GetAllowAssemblyEmulationUnwindPlans () |
lldb::FuncUnwindersSP | GetUncachedFuncUnwindersContainingAddress (const Address &addr, const 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 () |
std::optional< AddressRange > | GetAddressRange (const Address &addr, const SymbolContext &sc) |
UnwindTable (const UnwindTable &)=delete | |
const UnwindTable & | operator= (const UnwindTable &)=delete |
Private Attributes | |
Module & | m_module |
collection | m_unwinds |
bool | m_initialized |
std::mutex | m_mutex |
std::unique_ptr< CallFrameInfo > | m_object_file_unwind_up |
std::unique_ptr< DWARFCallFrameInfo > | m_eh_frame_up |
std::unique_ptr< DWARFCallFrameInfo > | m_debug_frame_up |
std::unique_ptr< CompactUnwindInfo > | m_compact_unwind_up |
std::unique_ptr< ArmUnwindInfo > | m_arm_unwind_up |
Definition at line 24 of file UnwindTable.h.
|
private |
Definition at line 67 of file UnwindTable.h.
|
private |
Definition at line 69 of file UnwindTable.h.
|
private |
Definition at line 68 of file UnwindTable.h.
|
explicit |
Create an Unwind table using the data in the given module.
Definition at line 32 of file UnwindTable.cpp.
|
default |
|
privatedelete |
|
private |
Definition at line 164 of file UnwindTable.cpp.
References lldb_private::Stream::EOL(), lldb_private::Stream::Format(), lldb_private::Module::GetFileSpec(), m_module, m_mutex, m_unwinds, and lldb_private::Stream::Printf().
|
private |
Definition at line 90 of file UnwindTable.cpp.
References lldb_private::SymbolContext::GetAddressRange(), lldb_private::AddressRange::GetBaseAddress(), lldb_private::Address::IsValid(), m_debug_frame_up, m_eh_frame_up, and m_object_file_unwind_up.
Referenced by GetFuncUnwindersContainingAddress(), and GetUncachedFuncUnwindersContainingAddress().
bool UnwindTable::GetAllowAssemblyEmulationUnwindPlans | ( | ) |
Definition at line 205 of file UnwindTable.cpp.
References lldb_private::Module::GetObjectFile(), and m_module.
Referenced by lldb_private::FuncUnwinders::GetAssemblyUnwindPlan().
ArchSpec UnwindTable::GetArchitecture | ( | ) |
Definition at line 203 of file UnwindTable.cpp.
References lldb_private::Module::GetArchitecture(), and m_module.
Referenced by lldb_private::FuncUnwinders::GetUnwindAssemblyProfiler().
ArmUnwindInfo * UnwindTable::GetArmUnwindInfo | ( | ) |
Definition at line 196 of file UnwindTable.cpp.
References Initialize(), and m_arm_unwind_up.
Referenced by lldb_private::FuncUnwinders::GetArmUnwindUnwindPlan().
CompactUnwindInfo * UnwindTable::GetCompactUnwindInfo | ( | ) |
Definition at line 191 of file UnwindTable.cpp.
References Initialize(), and m_compact_unwind_up.
Referenced by lldb_private::FuncUnwinders::GetCompactUnwindUnwindPlan().
DWARFCallFrameInfo * UnwindTable::GetDebugFrameInfo | ( | ) |
Definition at line 186 of file UnwindTable.cpp.
References Initialize(), and m_debug_frame_up.
Referenced by lldb_private::FuncUnwinders::GetDebugFrameUnwindPlan().
DWARFCallFrameInfo * UnwindTable::GetEHFrameInfo | ( | ) |
Definition at line 181 of file UnwindTable.cpp.
References Initialize(), and m_eh_frame_up.
Referenced by lldb_private::FuncUnwinders::GetEHFrameUnwindPlan().
FuncUnwindersSP UnwindTable::GetFuncUnwindersContainingAddress | ( | const Address & | addr, |
SymbolContext & | sc | ||
) |
Definition at line 116 of file UnwindTable.cpp.
References GetAddressRange(), lldb_private::Address::GetFileAddress(), Initialize(), m_mutex, and m_unwinds.
lldb_private::CallFrameInfo * UnwindTable::GetObjectFileUnwindInfo | ( | ) |
Definition at line 176 of file UnwindTable.cpp.
References Initialize(), and m_object_file_unwind_up.
Referenced by lldb_private::FuncUnwinders::GetObjectFileUnwindPlan().
SymbolFile * UnwindTable::GetSymbolFile | ( | ) |
Definition at line 201 of file UnwindTable.cpp.
References lldb_private::Module::GetSymbolFile(), and m_module.
Referenced by lldb_private::FuncUnwinders::GetSymbolFileUnwindPlan().
FuncUnwindersSP UnwindTable::GetUncachedFuncUnwindersContainingAddress | ( | const Address & | addr, |
const SymbolContext & | sc | ||
) |
Definition at line 153 of file UnwindTable.cpp.
References GetAddressRange(), and Initialize().
|
private |
Definition at line 40 of file UnwindTable.cpp.
References lldb_private::ObjectFile::CreateCallFrameInfo(), lldb_private::DWARFCallFrameInfo::DWARF, lldb_private::DWARFCallFrameInfo::EH, lldb::eSectionTypeARMexidx, lldb::eSectionTypeARMextab, lldb::eSectionTypeCompactUnwind, lldb::eSectionTypeDWARFDebugFrame, lldb::eSectionTypeEHFrame, lldb_private::SectionList::FindSectionByType(), lldb_private::Module::GetObjectFile(), lldb_private::Module::GetSectionList(), m_arm_unwind_up, m_compact_unwind_up, m_debug_frame_up, m_eh_frame_up, m_initialized, m_module, m_mutex, and m_object_file_unwind_up.
Referenced by GetArmUnwindInfo(), GetCompactUnwindInfo(), GetDebugFrameInfo(), GetEHFrameInfo(), GetFuncUnwindersContainingAddress(), GetObjectFileUnwindInfo(), and GetUncachedFuncUnwindersContainingAddress().
|
privatedelete |
|
private |
Definition at line 81 of file UnwindTable.h.
Referenced by GetArmUnwindInfo(), and Initialize().
|
private |
Definition at line 80 of file UnwindTable.h.
Referenced by GetCompactUnwindInfo(), and Initialize().
|
private |
Definition at line 79 of file UnwindTable.h.
Referenced by GetAddressRange(), GetDebugFrameInfo(), and Initialize().
|
private |
Definition at line 78 of file UnwindTable.h.
Referenced by GetAddressRange(), GetEHFrameInfo(), and Initialize().
|
private |
Definition at line 74 of file UnwindTable.h.
Referenced by Initialize().
|
private |
Definition at line 71 of file UnwindTable.h.
Referenced by Dump(), GetAllowAssemblyEmulationUnwindPlans(), GetArchitecture(), GetSymbolFile(), and Initialize().
|
private |
Definition at line 75 of file UnwindTable.h.
Referenced by Dump(), GetFuncUnwindersContainingAddress(), and Initialize().
|
private |
Definition at line 77 of file UnwindTable.h.
Referenced by GetAddressRange(), GetObjectFileUnwindInfo(), and Initialize().
|
private |
Definition at line 72 of file UnwindTable.h.
Referenced by Dump(), and GetFuncUnwindersContainingAddress().