25using namespace minidump;
27#define INV LLDB_INVALID_REGNUM
28#define OFFSET(r) (offsetof(RegisterContextMinidump_ARM::Context, r))
32 "r" #i, nullptr, 4, OFFSET(r) + i * 4, eEncodingUint, eFormatHex, \
33 {ehframe_r##i, dwarf_r##i, INV, INV, reg_r##i}, nullptr, nullptr, \
37#define DEF_R_ARG(i, n) \
39 "r" #i, "arg" #n, 4, OFFSET(r) + i * 4, eEncodingUint, eFormatHex, \
40 {ehframe_r##i, dwarf_r##i, LLDB_REGNUM_GENERIC_ARG1 + i, INV, \
42 nullptr, nullptr, nullptr, \
47 "d" #i, nullptr, 8, OFFSET(d) + i * 8, eEncodingVector, \
48 eFormatVectorOfUInt8, {dwarf_d##i, dwarf_d##i, INV, INV, reg_d##i}, \
49 nullptr, nullptr, nullptr, \
54 "s" #i, nullptr, 4, OFFSET(s) + i * 4, eEncodingIEEE754, eFormatFloat, \
55 {dwarf_s##i, dwarf_s##i, INV, INV, reg_s##i}, nullptr, nullptr, \
61 "q" #i, nullptr, 16, OFFSET(q) + i * 16, eEncodingVector, \
62 eFormatVectorOfUInt8, {dwarf_q##i, dwarf_q##i, INV, INV, reg_q##i}, \
63 nullptr, nullptr, nullptr, \
472 for (
unsigned i = 0; i < std::size(
m_regs.
r); ++i)
476 for (
unsigned i = 0; i < std::size(
m_regs.
d); ++i)
535 return error.Success();
static llvm::raw_ostream & error(Stream &strm)
constexpr size_t k_num_reg_infos
constexpr size_t k_num_reg_sets
static RegisterInfo g_reg_info_apple_fp
const uint32_t g_gpr_regnums[]
constexpr size_t k_num_fpu_regs
static RegisterInfo g_reg_info_fp
constexpr size_t k_num_gpr_regs
const uint32_t g_fpu_regnums[]
static RegisterInfo g_reg_infos[]
static RegisterSet g_reg_sets[]
uint32_t SetFromMemoryData(const RegisterInfo ®_info, const void *src, uint32_t src_len, lldb::ByteOrder src_byte_order, Status &error)
static size_t GetRegisterCountStatic()
const lldb_private::RegisterSet * GetRegisterSet(size_t set) override
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
RegisterContextMinidump_ARM(lldb_private::Thread &thread, const DataExtractor &data, bool apple)
bool WriteRegister(const RegisterInfo *reg_info, const RegisterValue ®_value) override
static const lldb_private::RegisterInfo * GetRegisterInfoAtIndexStatic(size_t reg, bool apple)
const char * GetRegisterName(unsigned reg)
size_t GetRegisterCount() override
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
bool ReadRegister(const RegisterInfo *reg_info, RegisterValue ®_value) override
size_t GetRegisterSetCount() override
#define LLDB_REGNUM_GENERIC_RA
#define LLDB_REGNUM_GENERIC_SP
#define LLDB_REGNUM_GENERIC_FLAGS
#define LLDB_INVALID_REGNUM
#define LLDB_REGNUM_GENERIC_PC
#define LLDB_REGNUM_GENERIC_FP
A class that represents a running process on the host machine.
@ eEncodingUint
unsigned integer
RegisterKind
Register numbering types.
Every register is described in detail including its name, alternate name (optional),...
uint32_t byte_offset
The byte offset in the register context data where this register's value is found.
uint32_t byte_size
Size in bytes of the register.
const char * name
Name of this register, can't be NULL.
Registers are grouped into register sets.