38 #include "floatformat.h"
233 _(
"No virtual frame pointer available"));
305 "(currently big endian)\n"));
308 "(currently little endian)\n"));
312 _(
"The target is assumed to be big endian\n"));
315 _(
"The target is assumed to be little endian\n"));
330 _(
"set_endian: architecture update failed"));
350 _(
"set_endian: bad value"));
369 static const struct bfd_arch_info *
371 const struct bfd_arch_info *selected)
374 const struct bfd_arch_info *compat1, *compat2;
376 if (selected == NULL)
379 if (from_target == NULL)
385 if (from_target == selected)
398 compat1 = selected->compatible (selected, from_target);
399 compat2 = from_target->compatible (from_target, selected);
401 if (compat1 == NULL && compat2 == NULL)
409 warning (
_(
"Selected architecture %s is not compatible "
410 "with reported target architecture %s"),
411 selected->printable_name, from_target->printable_name);
419 if (compat1 == compat2)
426 if (compat1->the_default)
428 if (compat2->the_default)
433 warning (
_(
"Selected architecture %s is ambiguous with "
434 "reported target architecture %s"),
435 selected->printable_name, from_target->printable_name);
465 "automatically (currently %s)\n"),
488 _(
"could not select an architecture automatically"));
495 _(
"set_architecture: bfd_scan_arch failed"));
513 if (info.
abfd == NULL)
515 if (info.
abfd == NULL)
525 if (new_gdbarch == NULL)
529 "Architecture not found\n");
539 "Architecture %s (%s) unchanged\n",
548 "New architecture %s (%s) selected\n",
584 error (
_(
"Architecture of file not recognized."));
592 #ifdef DEFAULT_BFD_ARCH
599 #ifdef DEFAULT_BFD_VEC
622 const char *chosen = arches[0];
624 for (arch = arches; *arch != NULL; arch++)
626 if (strcmp (*arch, chosen) < 0)
631 _(
"initialize_current_architecture: No arch"));
635 _(
"initialize_current_architecture: Arch not found"));
650 case BFD_ENDIAN_LITTLE:
678 _(
"initialize_current_architecture: Selection of "
679 "initial architecture failed"));
686 for (nr = 0; arches[nr] != NULL; nr++);
687 arches =
xrealloc (arches,
sizeof (
char*) * (nr + 2));
688 arches[nr + 0] =
"auto";
689 arches[nr + 1] = NULL;
692 _(
"Set architecture of target."),
693 _(
"Show architecture of target."), NULL,
729 && info->
abfd != NULL
730 && bfd_get_arch (info->
abfd) != bfd_arch_unknown
731 && bfd_get_arch (info->
abfd) != bfd_arch_obscure)
747 && info->
abfd != NULL)
749 : bfd_little_endian (info->
abfd) ? BFD_ENDIAN_LITTLE
750 : BFD_ENDIAN_UNKNOWN);
764 #ifdef GDB_OSABI_DEFAULT
820 error (
_(
"This architecture has no method to collect a return address."));
857 current_pc += bp_len;
864 error (
_(
"This target does not support inferior memory allocation by mmap."));
908 _(
"Set endianness of target."),
909 _(
"Show endianness of target."),
struct gdbarch * target_gdbarch(void)
int gdbarch_software_single_step_p(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)
void displaced_step_dump_bytes(struct ui_file *file, const gdb_byte *buf, size_t len)
struct gdbarch * get_regcache_arch(const struct regcache *regcache)
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_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
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)
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
int gdbarch_deprecated_fp_regnum(struct gdbarch *gdbarch)
struct ui_file * gdb_stdout
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 internal_error(const char *file, int line, const char *fmt,...)
int gdbarch_update_p(struct gdbarch_info info)
const char ** gdbarch_printable_names(void)
struct displaced_step_closure * simple_displaced_step_copy_insn(struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
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)
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)
static int default_byte_order
const char * paddress(struct gdbarch *gdbarch, CORE_ADDR addr)
CORE_ADDR default_adjust_dwarf2_line(CORE_ADDR addr, int rel)
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)
ULONGEST gdbarch_max_insn_length(struct gdbarch *gdbarch)
void initialize_file_ftype(void)
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)
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)
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)
struct cmd_list_element * add_alias_cmd(const char *name, const char *oldname, enum command_class theclass, int abbrev_flag, struct cmd_list_element **list)
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)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
int default_insn_is_ret(struct gdbarch *gdbarch, CORE_ADDR addr)
CORE_ADDR displaced_step_at_entry_point(struct gdbarch *gdbarch)
struct ui_file * gdb_stdlog
static const char endian_little[]
#define GDB_OSABI_DEFAULT
int default_fast_tracepoint_valid_at(struct gdbarch *gdbarch, CORE_ADDR addr, int *isize, char **msg)
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)
const struct target_desc * target_desc
PTR xrealloc(PTR ptr, size_t size)
static const bfd_arch_info_type * default_bfd_arch
static void set_endian(char *ignore_args, int from_tty, struct cmd_list_element *c)
static int target_byte_order_user
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)
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)
const char * host_address_to_string(const void *addr)
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)
CORE_ADDR default_infcall_mmap(CORE_ADDR size, unsigned prot)
enum bfd_endian byte_order_for_code
const struct bfd_arch_info * gdbarch_bfd_arch_info(struct gdbarch *gdbarch)
int default_stabs_argument_has_addr(struct gdbarch *gdbarch, struct type *type)
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)
void default_remote_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *kindptr)
enum gdb_osabi gdbarch_lookup_osabi(bfd *abfd)
void write_memory(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
CORE_ADDR convert_from_func_ptr_addr_identity(struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
static const char *const endian_enum[]
static void set_architecture(char *ignore_args, int from_tty, struct cmd_list_element *c)
enum bfd_endian byte_order
void set_target_gdbarch(struct gdbarch *new_gdbarch)
int default_return_in_first_hidden_param_p(struct gdbarch *gdbarch, struct type *type)
initialize_file_ftype _initialize_gdbarch_utils
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)
const ULONGEST const LONGEST len
void simple_displaced_step_free_closure(struct gdbarch *gdbarch, struct displaced_step_closure *closure)