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, 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::FuncUnwindersSP > | collection |
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 UnwindTable & | operator= (const UnwindTable &)=delete |
Private Attributes | |
Module & | m_module |
collection | m_unwinds |
bool | m_scanned_all_unwind_sources |
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 71 of file UnwindTable.h.
|
private |
Definition at line 73 of file UnwindTable.h.
|
private |
Definition at line 72 of file UnwindTable.h.
|
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().
|
default |
|
privatedelete |
References UnwindTable().
|
private |
Definition at line 177 of file UnwindTable.cpp.
References lldb_private::Stream::EOL(), lldb_private::Stream::Format(), m_module, m_mutex, m_unwinds, and lldb_private::Stream::Printf().
|
private |
Definition at line 94 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 218 of file UnwindTable.cpp.
References m_module.
ArchSpec UnwindTable::GetArchitecture | ( | ) |
Definition at line 216 of file UnwindTable.cpp.
References m_module.
ArmUnwindInfo * UnwindTable::GetArmUnwindInfo | ( | ) |
Definition at line 209 of file UnwindTable.cpp.
References Initialize(), and m_arm_unwind_up.
CompactUnwindInfo * UnwindTable::GetCompactUnwindInfo | ( | ) |
Definition at line 204 of file UnwindTable.cpp.
References Initialize(), and m_compact_unwind_up.
DWARFCallFrameInfo * UnwindTable::GetDebugFrameInfo | ( | ) |
Definition at line 199 of file UnwindTable.cpp.
References Initialize(), and m_debug_frame_up.
DWARFCallFrameInfo * UnwindTable::GetEHFrameInfo | ( | ) |
Definition at line 194 of file UnwindTable.cpp.
References Initialize(), and m_eh_frame_up.
FuncUnwindersSP UnwindTable::GetFuncUnwindersContainingAddress | ( | const Address & | addr, |
const SymbolContext & | sc ) |
Definition at line 133 of file UnwindTable.cpp.
References GetAddressRanges(), lldb_private::Address::GetFileAddress(), GetFunctionOrSymbolAddress(), Initialize(), m_mutex, and m_unwinds.
Referenced by CommandObjectTargetModulesShowUnwind::DoExecute().
lldb_private::CallFrameInfo * UnwindTable::GetObjectFileUnwindInfo | ( | ) |
Definition at line 189 of file UnwindTable.cpp.
References Initialize(), and m_object_file_unwind_up.
SymbolFile * UnwindTable::GetSymbolFile | ( | ) |
Definition at line 214 of file UnwindTable.cpp.
References m_module.
FuncUnwindersSP UnwindTable::GetUncachedFuncUnwindersContainingAddress | ( | const Address & | addr, |
const SymbolContext & | sc ) |
Definition at line 165 of file UnwindTable.cpp.
References GetAddressRanges(), GetFunctionOrSymbolAddress(), and Initialize().
Referenced by CommandObjectTargetModulesShowUnwind::DoExecute().
|
private |
Definition at line 39 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(), m_arm_unwind_up, m_compact_unwind_up, m_debug_frame_up, m_eh_frame_up, m_module, m_mutex, m_object_file_unwind_up, and m_scanned_all_unwind_sources.
Referenced by GetArmUnwindInfo(), GetCompactUnwindInfo(), GetDebugFrameInfo(), GetEHFrameInfo(), GetFuncUnwindersContainingAddress(), GetObjectFileUnwindInfo(), and GetUncachedFuncUnwindersContainingAddress().
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.
|
privatedelete |
References UnwindTable().
|
private |
Definition at line 89 of file UnwindTable.h.
Referenced by GetArmUnwindInfo(), Initialize(), and UnwindTable().
|
private |
Definition at line 88 of file UnwindTable.h.
Referenced by GetCompactUnwindInfo(), Initialize(), and UnwindTable().
|
private |
Definition at line 87 of file UnwindTable.h.
Referenced by GetAddressRanges(), GetDebugFrameInfo(), and Initialize().
|
private |
Definition at line 86 of file UnwindTable.h.
Referenced by GetAddressRanges(), GetEHFrameInfo(), Initialize(), and UnwindTable().
|
private |
Definition at line 75 of file UnwindTable.h.
Referenced by Dump(), GetAllowAssemblyEmulationUnwindPlans(), GetArchitecture(), GetSymbolFile(), Initialize(), and UnwindTable().
|
private |
Definition at line 83 of file UnwindTable.h.
Referenced by Dump(), GetFuncUnwindersContainingAddress(), Initialize(), ModuleWasUpdated(), and UnwindTable().
|
private |
Definition at line 85 of file UnwindTable.h.
Referenced by GetAddressRanges(), GetObjectFileUnwindInfo(), Initialize(), and UnwindTable().
|
private |
Definition at line 78 of file UnwindTable.h.
Referenced by Initialize(), ModuleWasUpdated(), and UnwindTable().
|
private |
Definition at line 76 of file UnwindTable.h.
Referenced by Dump(), GetFuncUnwindersContainingAddress(), ModuleWasUpdated(), and UnwindTable().