98 #define DW_EH_PE_absptr 0x00 99 #define DW_EH_PE_uleb128 0x01 100 #define DW_EH_PE_udata2 0x02 101 #define DW_EH_PE_udata4 0x03 102 #define DW_EH_PE_udata8 0x04 103 #define DW_EH_PE_sleb128 0x09 104 #define DW_EH_PE_sdata2 0x0A 105 #define DW_EH_PE_sdata4 0x0B 106 #define DW_EH_PE_sdata8 0x0C 109 #define DW_EH_PE_pcrel 0x10 110 #define DW_EH_PE_textrel 0x20 111 #define DW_EH_PE_datarel 0x30 112 #define DW_EH_PE_funcrel 0x40 113 #define DW_EH_PE_aligned 0x50 116 #define DW_EH_PE_omit 0xFF 147 #define DW_CFA_GNU_args_size 0x2E 148 #define DW_CFA_GNU_negative_offset_extended 0x2F 271 operator bool()
const 484 void parse(
char *addr)
override;
567 {
return (pc > m_pc_begin) && (pc <= m_pc_begin + m_pc_range); }
574 {
return m_pc_begin; }
581 {
return m_pc_range; }
597 {
return m_instructions; }
607 void parse(
char *addr)
override;
614 char *m_instructions;
void parse(char *addr) override
char augmentation_string(uint64_t index) const
void non_virtual_parse(char *addr)
const ci_entry & cie() const
uint64_t m_personality_function
uint64_t m_return_address_reg
uint64_t pc_begin() const
uint64_t pointer_encoding() const
uint64_t m_pointer_encoding
fd_entry & operator=(fd_entry &&) noexcept=default
char * initial_instructions() const
~fd_entry() override=default
char * m_initial_instructions
void parse(char *addr) override
void non_virtual_parse(char *addr)
char * payload_end() const
void uint64_t uint64_t uint64_t *rdx noexcept
auto index(const T virt, const F from)
constexpr const auto addr
uint64_t personality_encoding() const
static fd_entry find_fde(register_state *state)
uint64_t decode_pointer(char **addr, uint64_t encoding)
~ci_entry() override=default
uint64_t code_alignment() const
char * payload_start() const
uint64_t m_code_alignment
ci_entry & operator=(ci_entry &&) noexcept=default
void non_virtual_parse(char *addr)
uint64_t pc_range() const
char * entry_start() const
bool is_in_range(uint64_t pc) const
virtual ~common_entry()=default
uint64_t return_address_reg() const
common_entry & operator++()
virtual void parse(char *addr)=0
char * instructions() const
const char * m_augmentation_string
common_entry & operator=(common_entry &&) noexcept=default
uint64_t personality_function() const
int64_t data_alignment() const
eh_frame_t eh_frame() const
uint64_t lsda_encoding() const
uint64_t m_personality_encoding