38 #include "floatformat.h" 221 _(
"No virtual frame pointer available"));
229 const struct floatformat **
231 const char *
name,
int len)
233 const struct floatformat **format = NULL;
321 "(currently big endian)\n"));
324 "(currently little endian)\n"));
328 _(
"The target is assumed to be big endian\n"));
331 _(
"The target is assumed to be little endian\n"));
346 _(
"set_endian: architecture update failed"));
366 _(
"set_endian: bad value"));
385 static const struct bfd_arch_info *
387 const struct bfd_arch_info *selected)
390 const struct bfd_arch_info *compat1, *compat2;
392 if (selected == NULL)
395 if (from_target == NULL)
401 if (from_target == selected)
414 compat1 = selected->compatible (selected, from_target);
415 compat2 = from_target->compatible (from_target, selected);
417 if (compat1 == NULL && compat2 == NULL)
425 warning (
_(
"Selected architecture %s is not compatible " 426 "with reported target architecture %s"),
427 selected->printable_name, from_target->printable_name);
435 if (compat1 == compat2)
442 if (compat1->the_default)
444 if (compat2->the_default)
449 warning (
_(
"Selected architecture %s is ambiguous with " 450 "reported target architecture %s"),
451 selected->printable_name, from_target->printable_name);
481 "automatically (currently %s)\n"),
505 _(
"could not select an architecture automatically"));
512 _(
"set_architecture: bfd_scan_arch failed"));
530 if (info.
abfd == NULL)
532 if (info.
abfd == NULL)
542 if (new_gdbarch == NULL)
546 "Architecture not found\n");
556 "Architecture %s (%s) unchanged\n",
565 "New architecture %s (%s) selected\n",
601 error (
_(
"Architecture of file not recognized."));
609 #ifdef DEFAULT_BFD_ARCH 616 #ifdef DEFAULT_BFD_VEC 639 const char *chosen = arches[0];
641 for (arch = arches; *arch != NULL; arch++)
643 if (strcmp (*arch, chosen) < 0)
648 _(
"initialize_current_architecture: No arch"));
652 _(
"initialize_current_architecture: Arch not found"));
667 case BFD_ENDIAN_LITTLE:
695 _(
"initialize_current_architecture: Selection of " 696 "initial architecture failed"));
703 for (nr = 0; arches[nr] != NULL; nr++);
704 arches =
XRESIZEVEC (
const char *, arches, nr + 2);
705 arches[nr + 0] =
"auto";
706 arches[nr + 1] = NULL;
709 _(
"Set architecture of target."),
710 _(
"Show architecture of target."), NULL,
746 && info->
abfd != NULL
747 && bfd_get_arch (info->
abfd) != bfd_arch_unknown
748 && bfd_get_arch (info->
abfd) != bfd_arch_obscure)
764 && info->
abfd != NULL)
766 : bfd_little_endian (info->
abfd) ? BFD_ENDIAN_LITTLE
767 : BFD_ENDIAN_UNKNOWN);
781 #ifdef GDB_OSABI_DEFAULT 847 error (
_(
"This architecture has no method to collect a return address."));
883 current_pc += bp_len;
890 error (
_(
"This target does not support inferior memory allocation by mmap."));
952 disassembler_ftype disassemble_fn;
954 disassemble_fn = disassembler (info->arch, info->endian == BFD_ENDIAN_BIG,
958 return (*disassemble_fn) (memaddr, info);
984 _(
"Set endianness of target."),
985 _(
"Show endianness of target."),
struct gdbarch * target_gdbarch(void)
int gdbarch_software_single_step_p(struct gdbarch *gdbarch)
int default_fast_tracepoint_valid_at(struct gdbarch *gdbarch, CORE_ADDR addr, char **msg)
const struct floatformat ** gdbarch_double_format(struct gdbarch *gdbarch)
struct frame_info * get_selected_frame(const char *message)
const bfd_target DEFAULT_BFD_VEC
const char * default_gnu_triplet_regexp(struct gdbarch *gdbarch)
int default_code_of_frame_writable(struct gdbarch *gdbarch, struct frame_info *frame)
const struct floatformat ** default_floatformat_for_type(struct gdbarch *gdbarch, const char *name, int len)
void gdbarch_info_fill(struct gdbarch_info *info)
void warning(const char *fmt,...)
int default_insn_is_jump(struct gdbarch *gdbarch, CORE_ADDR addr)
int tdesc_compatible_p(const struct target_desc *target_desc, const struct bfd_arch_info *arch)
int generic_instruction_nullified(struct gdbarch *gdbarch, struct regcache *regcache)
bool default_execute_dwarf_cfa_vendor_op(struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs)
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
const struct floatformat ** gdbarch_long_double_format(struct gdbarch *gdbarch)
int gdbarch_deprecated_fp_regnum(struct gdbarch *gdbarch)
struct gdbarch * gdbarch_find_by_info(struct gdbarch_info info)
void default_infcall_munmap(CORE_ADDR addr, CORE_ADDR size)
enum bfd_endian selected_byte_order(void)
void * memset(T *s, int c, size_t n)=delete
void internal_error(const char *file, int line, const char *fmt,...)
int gdbarch_update_p(struct gdbarch_info info)
static void set_architecture(const char *ignore_args, int from_tty, struct cmd_list_element *c)
void add_setshow_enum_cmd(const char *name, enum command_class theclass, const char *const *enumlist, const char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
const char ** gdbarch_printable_names(void)
int gdbarch_breakpoint_kind_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr)
void default_make_symbol_special(struct symbol *sym, struct objfile *objfile)
void default_gen_return_address(struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope)
void _initialize_gdbarch_utils(void)
int gdbarch_num_regs(struct gdbarch *gdbarch)
const struct bfd_arch_info * bfd_arch_info
void regcache_write_pc(struct regcache *regcache, CORE_ADDR pc)
void default_guess_tracepoint_registers(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
const gdb_byte * default_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
#define host_address_to_string(ADDR)
CORE_ADDR default_adjust_dwarf2_line(CORE_ADDR addr, int rel)
static enum bfd_endian target_byte_order_user
const char * selected_architecture_name(void)
const bfd_arch_info_type DEFAULT_BFD_ARCH
CORE_ADDR core_addr_identity(struct gdbarch *gdbarch, CORE_ADDR addr)
struct cmd_list_element * setlist
int generic_convert_register_p(struct gdbarch *gdbarch, int regnum, struct type *type)
int default_insn_is_call(struct gdbarch *gdbarch, CORE_ADDR addr)
#define CATCH(EXCEPTION, MASK)
void set_gdbarch_from_file(bfd *abfd)
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
int generic_stack_frame_destroyed_p(struct gdbarch *gdbarch, CORE_ADDR pc)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
int generic_in_solib_return_trampoline(struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
int default_has_shared_address_space(struct gdbarch *gdbarch)
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
int no_op_reg_to_regnum(struct gdbarch *gdbarch, int reg)
struct cmd_list_element * showlist
int legacy_register_sim_regno(struct gdbarch *gdbarch, int regnum)
int default_print_insn(bfd_vma memaddr, disassemble_info *info)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
void legacy_virtual_frame_pointer(struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
static const char * set_architecture_string
int default_displaced_step_hw_singlestep(struct gdbarch *gdbarch, struct displaced_step_closure *closure)
int default_vsyscall_range(struct gdbarch *gdbarch, struct mem_range *range)
unsigned int gdbarch_debug
struct gdbarch * get_current_arch(void)
CORE_ADDR gdbarch_skip_prologue(struct gdbarch *gdbarch, CORE_ADDR ip)
int gdbarch_double_bit(struct gdbarch *gdbarch)
const char * gdbarch_register_name(struct gdbarch *gdbarch, int regnr)
static int startswith(const char *string, const char *pattern)
CORE_ADDR default_adjust_dwarf2_addr(CORE_ADDR pc)
const struct floatformat ** gdbarch_half_format(struct gdbarch *gdbarch)
static const char endian_auto[]
char * xstrprintf(const char *format,...)
int default_addressable_memory_unit_size(struct gdbarch *gdbarch)
void printf_unfiltered(const char *format,...)
CORE_ADDR generic_skip_trampoline_code(struct frame_info *frame, CORE_ADDR pc)
int default_insn_is_ret(struct gdbarch *gdbarch, CORE_ADDR addr)
CORE_ADDR displaced_step_at_entry_point(struct gdbarch *gdbarch)
#define XRESIZEVEC(T, P, N)
static const char endian_little[]
#define GDB_OSABI_DEFAULT
const struct target_desc * target_current_description(void)
void default_skip_permanent_breakpoint(struct regcache *regcache)
static const struct bfd_arch_info * choose_architecture_for_target(const struct target_desc *target_desc, const struct bfd_arch_info *selected)
struct cmd_list_element * add_alias_cmd(const char *name, cmd_list_element *old, enum command_class theclass, int abbrev_flag, struct cmd_list_element **list)
const struct target_desc * target_desc
const gdb_byte * gdbarch_sw_breakpoint_from_kind(struct gdbarch *gdbarch, int kind, int *size)
static const bfd_arch_info_type * default_bfd_arch
int core_addr_lessthan(CORE_ADDR lhs, CORE_ADDR rhs)
struct gdbarch * gdbarch_from_bfd(bfd *abfd)
int default_remote_register_number(struct gdbarch *gdbarch, int regno)
CORE_ADDR entry_point_address(void)
CORE_ADDR generic_skip_solib_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
int default_breakpoint_kind_from_current_state(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR *pcptr)
enum gdb_osabi tdesc_osabi(const struct target_desc *target_desc)
static const char endian_big[]
const gdb_byte * gdbarch_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
void gdbarch_info_init(struct gdbarch_info *info)
CORE_ADDR regcache_read_pc(struct regcache *regcache)
static void set_endian(const char *ignore_args, int from_tty, struct cmd_list_element *c)
static enum bfd_endian default_byte_order
int gdbarch_float_bit(struct gdbarch *gdbarch)
static const struct bfd_arch_info * target_architecture_user
static const char * set_endian_string
const struct bfd_arch_info * tdesc_architecture(const struct target_desc *target_desc)
void default_coff_make_msymbol_special(int val, struct minimal_symbol *msym)
int gdbarch_half_bit(struct gdbarch *gdbarch)
void regcache_raw_supply(struct regcache *regcache, int regnum, const void *buf)
CORE_ADDR default_infcall_mmap(CORE_ADDR size, unsigned prot)
int register_size(struct gdbarch *gdbarch, int regnum)
enum bfd_endian byte_order_for_code
const struct bfd_arch_info * gdbarch_bfd_arch_info(struct gdbarch *gdbarch)
int gdbarch_pc_regnum(struct gdbarch *gdbarch)
int default_stabs_argument_has_addr(struct gdbarch *gdbarch, struct type *type)
const struct floatformat ** gdbarch_float_format(struct gdbarch *gdbarch)
int core_addr_greaterthan(CORE_ADDR lhs, CORE_ADDR rhs)
static const bfd_target * default_bfd_vec
void initialize_current_architecture(void)
static void show_architecture(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
char * default_gcc_target_options(struct gdbarch *gdbarch)
static void show_endian(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
enum gdb_osabi gdbarch_lookup_osabi(bfd *abfd)
int gdbarch_long_double_bit(struct gdbarch *gdbarch)
CORE_ADDR convert_from_func_ptr_addr_identity(struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
static const char *const endian_enum[]
enum bfd_endian byte_order
CORE_ADDR gdbarch_skip_prologue_noexcept(gdbarch *gdbarch, CORE_ADDR pc) noexcept
void set_target_gdbarch(struct gdbarch *new_gdbarch)
int default_return_in_first_hidden_param_p(struct gdbarch *gdbarch, struct type *type)
int has_stack_frames(void)
void error(const char *fmt,...)
int cannot_register_not(struct gdbarch *gdbarch, int regnum)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
int language_pass_by_reference(struct type *type)
static void store_unsigned_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, ULONGEST val)