LLDB mainline
|
#include <ArmUnwindInfo.h>
Classes | |
struct | ArmExidxEntry |
Public Member Functions | |
ArmUnwindInfo (ObjectFile &objfile, lldb::SectionSP &arm_exidx, lldb::SectionSP &arm_extab) | |
~ArmUnwindInfo () | |
bool | GetUnwindPlan (Target &target, const Address &addr, UnwindPlan &unwind_plan) |
Private Member Functions | |
const uint8_t * | GetExceptionHandlingTableEntry (const Address &addr) |
uint8_t | GetByteAtOffset (const uint32_t *data, uint16_t offset) const |
uint64_t | GetULEB128 (const uint32_t *data, uint16_t &offset, uint16_t max_offset) const |
Private Attributes | |
const lldb::ByteOrder | m_byte_order |
lldb::SectionSP | m_arm_exidx_sp |
lldb::SectionSP | m_arm_extab_sp |
DataExtractor | m_arm_exidx_data |
DataExtractor | m_arm_extab_data |
std::vector< ArmExidxEntry > | m_exidx_entries |
Definition at line 30 of file ArmUnwindInfo.h.
ArmUnwindInfo::ArmUnwindInfo | ( | ObjectFile & | objfile, |
lldb::SectionSP & | arm_exidx, | ||
lldb::SectionSP & | arm_extab | ||
) |
Definition at line 48 of file ArmUnwindInfo.cpp.
References lldb_private::DataExtractor::GetU32(), m_arm_exidx_data, m_arm_exidx_sp, m_arm_extab_data, m_exidx_entries, Prel31ToAddr(), lldb_private::ObjectFile::ReadSectionData(), and lldb_private::DataExtractor::ValidOffset().
|
default |
|
private |
Definition at line 77 of file ArmUnwindInfo.cpp.
References lldb_private::endian::InlHostByteOrder(), and m_byte_order.
Referenced by GetULEB128(), and GetUnwindPlan().
|
private |
Definition at line 354 of file ArmUnwindInfo.cpp.
References lldb_private::DataExtractor::GetDataStart(), lldb_private::Address::GetFileAddress(), m_arm_extab_data, m_arm_extab_sp, m_exidx_entries, and Prel31ToAddr().
Referenced by GetUnwindPlan().
|
private |
Definition at line 85 of file ArmUnwindInfo.cpp.
References GetByteAtOffset().
Referenced by GetUnwindPlan().
bool ArmUnwindInfo::GetUnwindPlan | ( | Target & | target, |
const Address & | addr, | ||
UnwindPlan & | unwind_plan | ||
) |
Definition at line 99 of file ArmUnwindInfo.cpp.
References lldb_private::UnwindPlan::AppendRow(), dwarf_d0, dwarf_d16, dwarf_d8, dwarf_lr, dwarf_pc, dwarf_r0, dwarf_r4, dwarf_sp, lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, lldb::eRegisterKindDWARF, GetByteAtOffset(), GetExceptionHandlingTableEntry(), GetULEB128(), lldb_private::UnwindPlan::SetRegisterKind(), lldb_private::UnwindPlan::SetSourcedFromCompiler(), lldb_private::UnwindPlan::SetSourceName(), lldb_private::UnwindPlan::SetUnwindPlanForSignalTrap(), and lldb_private::UnwindPlan::SetUnwindPlanValidAtAllInstructions().
Referenced by lldb_private::FuncUnwinders::GetArmUnwindUnwindPlan(), and lldb_private::RegisterContextUnwind::GetFullUnwindPlanForFrame().
|
private |
Definition at line 61 of file ArmUnwindInfo.h.
Referenced by ArmUnwindInfo().
|
private |
Definition at line 59 of file ArmUnwindInfo.h.
Referenced by ArmUnwindInfo().
|
private |
Definition at line 62 of file ArmUnwindInfo.h.
Referenced by ArmUnwindInfo(), and GetExceptionHandlingTableEntry().
|
private |
Definition at line 60 of file ArmUnwindInfo.h.
Referenced by GetExceptionHandlingTableEntry().
|
private |
Definition at line 58 of file ArmUnwindInfo.h.
Referenced by GetByteAtOffset().
|
private |
Definition at line 63 of file ArmUnwindInfo.h.
Referenced by ArmUnwindInfo(), and GetExceptionHandlingTableEntry().