|
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().