GDB (xrefs)
|
#include "defs.h"
#include "osabi.h"
#include "arch-utils.h"
#include "gdbcmd.h"
#include "command.h"
#include "gdb_bfd.h"
#include "elf-bfd.h"
Go to the source code of this file.
Classes | |
struct | osabi_names |
struct | gdb_osabi_handler |
struct | gdb_osabi_sniffer |
Macros | |
#define | GDB_OSABI_DEFAULT GDB_OSABI_UNKNOWN |
#define | MAX_NOTESZ 128 |
Enumerations | |
enum | { osabi_auto , osabi_default , osabi_user } |
Functions | |
const char * | gdbarch_osabi_name (enum gdb_osabi osabi) |
const char * | osabi_triplet_regexp (enum gdb_osabi osabi) |
enum gdb_osabi | osabi_from_tdesc_string (const char *name) |
void | gdbarch_register_osabi (enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *)) |
void | gdbarch_register_osabi_sniffer (enum bfd_architecture arch, enum bfd_flavour flavour, enum gdb_osabi(*sniffer_fn)(bfd *)) |
enum gdb_osabi | gdbarch_lookup_osabi (bfd *abfd) |
static int | can_run_code_for (const struct bfd_arch_info *a, const struct bfd_arch_info *b) |
static struct gdb_osabi_handler * | gdbarch_osabi_handler (struct gdbarch_info info) |
bool | has_gdb_osabi_handler (struct gdbarch_info info) |
void | gdbarch_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) |
static int | check_note (bfd *abfd, asection *sect, char *note, unsigned int *sectsize, const char *name, unsigned long descsz, unsigned long type) |
void | generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, enum gdb_osabi *osabi) |
static enum gdb_osabi | generic_elf_osabi_sniffer (bfd *abfd) |
static void | set_osabi (const char *args, int from_tty, struct cmd_list_element *c) |
static void | show_osabi (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
void | _initialize_gdb_osabi () |
Variables | |
static enum { ... } | user_osabi_state |
static enum gdb_osabi | user_selected_osabi |
static const char * | gdb_osabi_available_names [GDB_OSABI_INVALID+3] |
static const char * | set_osabi_string |
static const struct osabi_names | gdb_osabi_names [] |
static struct gdb_osabi_handler * | gdb_osabi_handler_list |
static struct gdb_osabi_sniffer * | gdb_osabi_sniffer_list |
#define GDB_OSABI_DEFAULT GDB_OSABI_UNKNOWN |
Definition at line 31 of file osabi.c.
Referenced by gdbarch_info_fill(), set_osabi(), and show_osabi().
#define MAX_NOTESZ 128 |
Definition at line 410 of file osabi.c.
Referenced by check_note(), and generic_elf_osabi_sniff_abi_tag_sections().
void _initialize_gdb_osabi | ( | ) |
Definition at line 673 of file osabi.c.
Referenced by initialize_all_files().
|
static |
Definition at line 317 of file osabi.c.
Referenced by gdbarch_osabi_handler().
|
static |
Definition at line 417 of file osabi.c.
References MAX_NOTESZ, and name.
Referenced by generic_elf_osabi_sniff_abi_tag_sections().
void gdbarch_init_osabi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch ) |
Definition at line 382 of file osabi.c.
References GDB_OSABI_NONE, GDB_OSABI_UNKNOWN, gdbarch_osabi_handler(), gdbarch_osabi_name(), and gdb_osabi_handler::init_osabi.
Referenced by aarch64_gdbarch_init(), alpha_gdbarch_init(), arc_gdbarch_init(), arm_gdbarch_init(), bfin_gdbarch_init(), bpf_gdbarch_init(), cris_gdbarch_init(), csky_gdbarch_init(), frv_gdbarch_init(), ft32_gdbarch_init(), hppa_gdbarch_init(), i386_gdbarch_init(), ia64_gdbarch_init(), iq2000_gdbarch_init(), loongarch_gdbarch_init(), m32r_gdbarch_init(), m68k_gdbarch_init(), microblaze_gdbarch_init(), mips_gdbarch_init(), mn10300_gdbarch_init(), moxie_gdbarch_init(), nds32_gdbarch_init(), nios2_gdbarch_init(), or1k_gdbarch_init(), riscv_gdbarch_init(), rs6000_gdbarch_init(), s390_gdbarch_init(), sh_gdbarch_init(), sparc32_gdbarch_init(), tic6x_gdbarch_init(), tilegx_gdbarch_init(), v850_gdbarch_init(), vax_gdbarch_init(), xstormy16_gdbarch_init(), and xtensa_gdbarch_init().
enum gdb_osabi gdbarch_lookup_osabi | ( | bfd * | abfd | ) |
Definition at line 237 of file osabi.c.
References GDB_OSABI_INVALID, gdb_osabi_sniffer_list, GDB_OSABI_UNKNOWN, gdbarch_osabi_name(), osabi_user, gdb_osabi_sniffer::sniffer, user_osabi_state, and user_selected_osabi.
Referenced by gdbarch_info_fill().
|
static |
Definition at line 334 of file osabi.c.
References gdb_osabi_handler::arch_info, can_run_code_for(), gdb_osabi_handler_list, GDB_OSABI_UNKNOWN, gdb_osabi_handler::next, and gdb_osabi_handler::osabi.
Referenced by gdbarch_init_osabi(), and has_gdb_osabi_handler().
const char * gdbarch_osabi_name | ( | enum gdb_osabi | osabi | ) |
Definition at line 90 of file osabi.c.
References GDB_OSABI_INVALID, gdb_osabi_names, GDB_OSABI_UNKNOWN, and osabi_names::pretty.
Referenced by gdbarch_find_by_info(), gdbarch_init_osabi(), gdbarch_lookup_osabi(), gdbarch_register_osabi(), set_osabi(), show_osabi(), tdesc_osabi_name(), and print_c_tdesc::visit_pre().
void gdbarch_register_osabi | ( | enum bfd_architecture | arch, |
unsigned long | machine, | ||
enum gdb_osabi | osabi, | ||
void(*)(struct gdbarch_info, struct gdbarch *) | init_osabi ) |
Definition at line 146 of file osabi.c.
References gdb_osabi_available_names, gdb_osabi_handler_list, GDB_OSABI_UNKNOWN, gdbarch_osabi_name(), and gdb_osabi_handler::next.
Referenced by _initialize_aarch64_fbsd_tdep(), _initialize_aarch64_linux_tdep(), _initialize_aarch64_newlib_tdep(), _initialize_alpha_linux_tdep(), _initialize_alphanbsd_tdep(), _initialize_alphaobsd_tdep(), _initialize_amd64_darwin_tdep(), _initialize_amd64_dicos_tdep(), _initialize_amd64_sol2_tdep(), _initialize_amd64_windows_tdep(), _initialize_amd64fbsd_tdep(), _initialize_amd64nbsd_tdep(), _initialize_amd64obsd_tdep(), _initialize_arc_newlib_tdep(), _initialize_arm_fbsd_tdep(), _initialize_arm_linux_tdep(), _initialize_arm_netbsd_tdep(), _initialize_arm_none_tdep(), _initialize_arm_pikeos_tdep(), _initialize_arm_wince_tdep(), _initialize_armobsd_tdep(), _initialize_bfin_linux_tdep(), _initialize_cris_linux_tdep(), _initialize_csky_linux_tdep(), _initialize_frv_linux_tdep(), _initialize_hppa_linux_tdep(), _initialize_hppabsd_tdep(), _initialize_hppanbsd_tdep(), _initialize_i386_darwin_tdep(), _initialize_i386_dicos_tdep(), _initialize_i386_go32_tdep(), _initialize_i386_sol2_tdep(), _initialize_i386_windows_tdep(), _initialize_i386fbsd_tdep(), _initialize_i386gnu_tdep(), _initialize_i386nbsd_tdep(), _initialize_i386nto_tdep(), _initialize_i386obsd_tdep(), _initialize_ia64_linux_tdep(), _initialize_ia64_vms_tdep(), _initialize_loongarch_linux_tdep(), _initialize_m32r_linux_tdep(), _initialize_m68k_linux_tdep(), _initialize_m68k_tdep(), _initialize_m68kbsd_tdep(), _initialize_microblaze_linux_tdep(), _initialize_mips64obsd_tdep(), _initialize_mips_fbsd_tdep(), _initialize_mips_linux_tdep(), _initialize_mips_sde_tdep(), _initialize_mipsnbsd_tdep(), _initialize_mn10300_linux_tdep(), _initialize_nios2_linux_tdep(), _initialize_or1k_linux_tdep(), _initialize_ppc_linux_tdep(), _initialize_ppcfbsd_tdep(), _initialize_ppcnbsd_tdep(), _initialize_ppcobsd_tdep(), _initialize_riscv_fbsd_tdep(), _initialize_riscv_linux_tdep(), _initialize_riscv_none_tdep(), _initialize_rs6000_aix_tdep(), _initialize_rs6000_lynx178_tdep(), _initialize_s390_linux_tdep(), _initialize_sh_linux_tdep(), _initialize_shnbsd_tdep(), _initialize_sparc32obsd_tdep(), _initialize_sparc64_linux_tdep(), _initialize_sparc64_sol2_tdep(), _initialize_sparc64fbsd_tdep(), _initialize_sparc64nbsd_tdep(), _initialize_sparc64obsd_tdep(), _initialize_sparc_linux_tdep(), _initialize_sparc_sol2_tdep(), _initialize_sparcnbsd_tdep(), _initialize_tic6x_linux_tdep(), _initialize_tilegx_linux_tdep(), _initialize_vaxnbsd_tdep(), and _initialize_xtensa_linux_tdep().
void gdbarch_register_osabi_sniffer | ( | enum bfd_architecture | arch, |
enum bfd_flavour | flavour, | ||
enum gdb_osabi(*)(bfd *) | sniffer_fn ) |
Definition at line 220 of file osabi.c.
References gdb_osabi_sniffer::arch, gdb_osabi_sniffer::flavour, gdb_osabi_sniffer_list, and gdb_osabi_sniffer::sniffer.
Referenced by _initialize_amd64_dicos_tdep(), _initialize_amd64_windows_tdep(), _initialize_arc_newlib_tdep(), _initialize_arm_pikeos_tdep(), _initialize_arm_tdep(), _initialize_arm_wince_tdep(), _initialize_frv_linux_tdep(), _initialize_i386_darwin_tdep(), _initialize_i386_dicos_tdep(), _initialize_i386_go32_tdep(), _initialize_i386_sol2_tdep(), _initialize_i386_windows_tdep(), _initialize_i386nto_tdep(), _initialize_m68k_tdep(), _initialize_mips_sde_tdep(), _initialize_rs6000_aix_tdep(), and _initialize_rs6000_lynx178_tdep().
void generic_elf_osabi_sniff_abi_tag_sections | ( | bfd * | abfd, |
asection * | sect, | ||
enum gdb_osabi * | osabi ) |
Definition at line 461 of file osabi.c.
References check_note(), GDB_OSABI_FREEBSD, GDB_OSABI_HURD, GDB_OSABI_LINUX, GDB_OSABI_NETBSD, GDB_OSABI_OPENBSD, GDB_OSABI_SOLARIS, MAX_NOTESZ, name, and gdb_osabi_handler::osabi.
Referenced by arm_elf_osabi_sniffer(), generic_elf_osabi_sniffer(), and mips_sde_elf_osabi_sniffer().
|
static |
Definition at line 558 of file osabi.c.
References gdb_bfd_sections(), GDB_OSABI_FREEBSD, GDB_OSABI_NETBSD, GDB_OSABI_OPENVMS, GDB_OSABI_SOLARIS, GDB_OSABI_UNKNOWN, generic_elf_osabi_sniff_abi_tag_sections(), and gdb_osabi_handler::osabi.
bool has_gdb_osabi_handler | ( | struct gdbarch_info | info | ) |
Definition at line 376 of file osabi.c.
References gdbarch_osabi_handler().
Referenced by selftests::get_test_insn().
enum gdb_osabi osabi_from_tdesc_string | ( | const char * | name | ) |
Definition at line 113 of file osabi.c.
References GDB_OSABI_INVALID, gdb_osabi_names, GDB_OSABI_UNKNOWN, name, and osabi_names::pretty.
Referenced by initialize_tdesc_mips_dsp_linux(), initialize_tdesc_mips_linux(), initialize_tdesc_or1k_linux(), initialize_tdesc_sparc32_solaris(), initialize_tdesc_sparc64_solaris(), and set_tdesc_osabi().
const char * osabi_triplet_regexp | ( | enum gdb_osabi | osabi | ) |
Definition at line 101 of file osabi.c.
References GDB_OSABI_INVALID, gdb_osabi_names, GDB_OSABI_UNKNOWN, and osabi_names::regexp.
Referenced by compile_to_object().
|
static |
Definition at line 617 of file osabi.c.
References GDB_OSABI_DEFAULT, GDB_OSABI_INVALID, gdbarch_osabi_name(), gdbarch_update_p(), gdb_osabi_handler::osabi, osabi_auto, osabi_user, set_osabi_string, user_osabi_state, and user_selected_osabi.
|
static |
Definition at line 654 of file osabi.c.
References GDB_OSABI_DEFAULT, GDB_OSABI_UNKNOWN, gdb_printf(), gdbarch_osabi(), gdbarch_osabi_name(), get_current_arch(), osabi_auto, user_osabi_state, and user_selected_osabi.
|
static |
Definition at line 37 of file osabi.c.
Referenced by gdbarch_register_osabi().
|
static |
Definition at line 143 of file osabi.c.
Referenced by gdbarch_osabi_handler(), and gdbarch_register_osabi().
|
static |
Definition at line 60 of file osabi.c.
Referenced by gdbarch_osabi_name(), osabi_from_tdesc_string(), and osabi_triplet_regexp().
|
static |
Definition at line 217 of file osabi.c.
Referenced by gdbarch_lookup_osabi(), and gdbarch_register_osabi_sniffer().
|
static |
Definition at line 43 of file osabi.c.
Referenced by set_osabi().
enum { ... } user_osabi_state |
Referenced by gdbarch_lookup_osabi(), set_osabi(), and show_osabi().
|
static |
Definition at line 36 of file osabi.c.
Referenced by gdbarch_lookup_osabi(), set_osabi(), and show_osabi().