49 #include "elf/common.h" 135 #define AARCH64_SIGCONTEXT_REG_SIZE 8 136 #define AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET 128 137 #define AARCH64_UCONTEXT_SIGCONTEXT_OFFSET 176 138 #define AARCH64_SIGCONTEXT_XO_OFFSET 8 155 for (i = 0; i < 31; i++)
256 return (*s ==
'#' || isdigit (*s)
277 const char *tmp = p->
arg;
291 while (isalnum (*tmp))
298 regname = (
char *) alloca (len + 2);
300 strncpy (regname, start, len);
304 error (
_(
"Invalid register name `%s' on expression `%s'."),
319 else if (*tmp ==
'+')
325 displacement = strtol (tmp, &endp, 10);
663 #define SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \ 664 return gdb_sys_##SYSCALL 666 #define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \ 667 return gdb_sys_no_syscall 669 switch (syscall_number)
962 unsigned long svc_number)
973 "support syscall number %s\n"),
1016 static const char *
const stap_integer_prefixes[] = {
"#",
"", NULL };
1017 static const char *
const stap_register_prefixes[] = {
"", NULL };
1018 static const char *
const stap_register_indirection_prefixes[] = {
"[",
1020 static const char *
const stap_register_indirection_suffixes[] = {
"]",
1053 stap_register_indirection_prefixes);
1055 stap_register_indirection_suffixes);
ssize_t read(int fd, void *buf, size_t count)
static char * aarch64_linux_gcc_target_options(struct gdbarch *gdbarch)
void set_gdbarch_gcc_target_options(struct gdbarch *gdbarch, gdbarch_gcc_target_options_ftype gcc_target_options)
void trad_frame_set_reg_addr(struct trad_frame_cache *this_trad_cache, int regnum, CORE_ADDR addr)
int size_serial_icounter_struct
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
void set_gdbarch_displaced_step_fixup(struct gdbarch *gdbarch, gdbarch_displaced_step_fixup_ftype displaced_step_fixup)
void set_gdbarch_fetch_tls_load_module_address(struct gdbarch *gdbarch, gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
#define TRAMP_SENTINEL_INSN
struct link_map_offsets * svr4_lp64_fetch_link_map_offsets(void)
const target_desc * aarch64_read_description()
struct regcache * get_thread_regcache(ptid_t ptid)
void set_gdbarch_stap_parse_special_token(struct gdbarch *gdbarch, gdbarch_stap_parse_special_token_ftype stap_parse_special_token)
int record_full_arch_list_add_reg(struct regcache *regcache, int regnum)
int gdbarch_int_bit(struct gdbarch *gdbarch)
void() iterate_over_regset_sections_cb(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
void set_gdbarch_skip_trampoline_code(struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
CORE_ADDR glibc_skip_solib_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
void set_gdbarch_displaced_step_location(struct gdbarch *gdbarch, gdbarch_displaced_step_location_ftype displaced_step_location)
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
char * plongest(LONGEST l)
void set_gdbarch_stap_register_prefixes(struct gdbarch *gdbarch, const char *const *stap_register_prefixes)
int ioctl_TIOCSERGETMULTI
int(* aarch64_syscall_record)(struct regcache *regcache, unsigned long svc_number)
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
void linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
CORE_ADDR(* sigcontext_addr)(struct frame_info *)
int gdbarch_long_bit(struct gdbarch *gdbarch)
static const struct regcache_map_entry aarch64_linux_gregmap[]
char * skip_spaces(char *chp)
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
void set_gdbarch_displaced_step_hw_singlestep(struct gdbarch *gdbarch, gdbarch_displaced_step_hw_singlestep_ftype displaced_step_hw_singlestep)
void set_gdbarch_process_record(struct gdbarch *gdbarch, gdbarch_process_record_ftype process_record)
void set_gdbarch_stap_register_indirection_suffixes(struct gdbarch *gdbarch, const char *const *stap_register_indirection_suffixes)
static int aarch64_linux_syscall_record(struct regcache *regcache, unsigned long svc_number)
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
#define AARCH64_SIGCONTEXT_REG_SIZE
void set_gdbarch_stap_integer_prefixes(struct gdbarch *gdbarch, const char *const *stap_integer_prefixes)
static void aarch64_linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
struct parser_state pstate
int ioctl_TIOCSERSETMULTI
static const struct regcache_map_entry aarch64_linux_fpregmap[]
void write_exp_elt_longcst(struct parser_state *ps, LONGEST expelt)
static void aarch64_linux_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
#define AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET
int record_linux_system_call(enum gdb_syscall syscall, struct regcache *regcache, struct linux_record_tdep *tdep)
CORE_ADDR find_solib_trampoline_target(struct frame_info *frame, CORE_ADDR pc)
static int aarch64_stap_parse_special_token(struct gdbarch *gdbarch, struct stap_parse_info *p)
static LONGEST aarch64_linux_get_syscall_number(struct gdbarch *gdbarch, ptid_t ptid)
int target_auxv_search(struct target_ops *ops, CORE_ADDR match, CORE_ADDR *valp)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
void set_gdbarch_stap_register_indirection_prefixes(struct gdbarch *gdbarch, const char *const *stap_register_indirection_prefixes)
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
void _initialize_aarch64_linux_tdep(void)
#define SYSCALL_MAP(SYSCALL)
void aarch64_displaced_step_fixup(struct gdbarch *gdbarch, struct displaced_step_closure *dsc_, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
void set_xml_syscall_file_name(struct gdbarch *gdbarch, const char *name)
void printf_unfiltered(const char *format,...)
int user_reg_map_name_to_regnum(struct gdbarch *gdbarch, const char *name, int len)
ULONGEST get_frame_register_unsigned(struct frame_info *frame, int regnum)
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
CORE_ADDR linux_displaced_step_location(struct gdbarch *gdbarch)
#define AARCH64_UCONTEXT_SIGCONTEXT_OFFSET
int aarch64_displaced_step_hw_singlestep(struct gdbarch *gdbarch, struct displaced_step_closure *closure)
const struct regset aarch64_linux_gregset
void write_exp_elt_opcode(struct parser_state *ps, enum exp_opcode expelt)
void set_gdbarch_displaced_step_copy_insn(struct gdbarch *gdbarch, gdbarch_displaced_step_copy_insn_ftype displaced_step_copy_insn)
#define AARCH64_LINUX_SIZEOF_FPREGSET
static void aarch64_linux_sigframe_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
void set_gdbarch_stap_is_single_operand(struct gdbarch *gdbarch, gdbarch_stap_is_single_operand_ftype stap_is_single_operand)
void set_gdbarch_get_syscall_number(struct gdbarch *gdbarch, gdbarch_get_syscall_number_ftype get_syscall_number)
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
int aarch64_process_record(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR insn_addr)
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
static LONGEST extract_signed_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
#define AARCH64_LINUX_SIZEOF_GREGSET
static int aarch64_all_but_pc_registers_record(struct regcache *regcache)
static enum gdb_syscall aarch64_canonicalize_syscall(enum aarch64_syscall syscall_number)
#define DISPLACED_MODIFIED_INSNS
int size_hayes_esp_config
#define UNSUPPORTED_SYSCALL_MAP(SYSCALL)
static const struct target_desc * aarch64_linux_core_read_description(struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
int size__old_kernel_stat
struct displaced_step_closure * aarch64_displaced_step_copy_insn(struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
#define AARCH64_SIGCONTEXT_XO_OFFSET
void set_gdbarch_skip_solib_resolver(struct gdbarch *gdbarch, gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
static const struct tramp_frame aarch64_linux_rt_sigframe
void set_gdbarch_max_insn_length(struct gdbarch *gdbarch, ULONGEST max_insn_length)
void write_exp_string(struct parser_state *ps, struct stoken str)
void set_gdbarch_core_read_description(struct gdbarch *gdbarch, gdbarch_core_read_description_ftype core_read_description)
void write_exp_elt_type(struct parser_state *ps, struct type *expelt)
static int aarch64_stap_is_single_operand(struct gdbarch *gdbarch, const char *s)
void error(const char *fmt,...)
const struct regset aarch64_linux_fpregset
struct linux_record_tdep aarch64_linux_record_tdep
struct type * lookup_pointer_type(struct type *type)