#include <vector>
#include "Utility/ARM_DWARF_Registers.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/Section.h"
#include "lldb/Symbol/ArmUnwindInfo.h"
#include "lldb/Symbol/SymbolVendor.h"
#include "lldb/Symbol/UnwindPlan.h"
#include "lldb/Utility/Endian.h"
usingnamespacelldb;
usingnamespacelldb_private;
static addr_t Prel31ToAddr(uint32_t prel31) { … }
ArmUnwindInfo::ArmExidxEntry::ArmExidxEntry(uint32_t f, lldb::addr_t a,
uint32_t d)
: … { … }
bool ArmUnwindInfo::ArmExidxEntry::operator<(const ArmExidxEntry &other) const { … }
ArmUnwindInfo::ArmUnwindInfo(ObjectFile &objfile, SectionSP &arm_exidx,
SectionSP &arm_extab)
: … { … }
ArmUnwindInfo::~ArmUnwindInfo() = default;
uint8_t ArmUnwindInfo::GetByteAtOffset(const uint32_t *data,
uint16_t offset) const { … }
uint64_t ArmUnwindInfo::GetULEB128(const uint32_t *data, uint16_t &offset,
uint16_t max_offset) const { … }
bool ArmUnwindInfo::GetUnwindPlan(Target &target, const Address &addr,
UnwindPlan &unwind_plan) { … }
const uint8_t *
ArmUnwindInfo::GetExceptionHandlingTableEntry(const Address &addr) { … }