GDB (xrefs)
|
#include "defs.h"
#include "gdb_assert.h"
#include "gdb_string.h"
#include "osabi.h"
#include "arch-utils.h"
#include "gdbcmd.h"
#include "command.h"
#include "elf-bfd.h"
Go to the source code of this file.
Classes | |
struct | gdb_osabi_handler |
struct | gdb_osabi_sniffer |
Defines | |
#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) |
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) |
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, void *obj) |
static enum gdb_osabi | generic_elf_osabi_sniffer (bfd *abfd) |
static void | set_osabi (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 (void) |
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 char *const | gdb_osabi_names [] |
static struct gdb_osabi_handler * | gdb_osabi_handler_list |
static struct gdb_osabi_sniffer * | gdb_osabi_sniffer_list |
initialize_file_ftype | _initialize_gdb_osabi |
#define GDB_OSABI_DEFAULT GDB_OSABI_UNKNOWN |
Definition at line 33 of file osabi.c.
Referenced by gdbarch_info_fill(), set_osabi(), and show_osabi().
#define MAX_NOTESZ 128 |
Definition at line 372 of file osabi.c.
Referenced by check_note(), and generic_elf_osabi_sniff_abi_tag_sections().
anonymous enum |
void _initialize_gdb_osabi | ( | void | ) |
Definition at line 650 of file osabi.c.
References _, add_setshow_enum_cmd(), class_support, gdb_osabi_available_names, GDB_OSABI_INVALID, gdb_osabi_names, gdbarch_register_osabi_sniffer(), generic_elf_osabi_sniffer(), internal_error(), osabi_auto, set_osabi(), set_osabi_string, setlist, show_osabi(), showlist, and user_osabi_state.
static int can_run_code_for | ( | const struct bfd_arch_info * | a, |
const struct bfd_arch_info * | b | ||
) | [static] |
Definition at line 304 of file osabi.c.
Referenced by gdbarch_init_osabi().
static int check_note | ( | bfd * | abfd, |
asection * | sect, | ||
char * | note, | ||
unsigned int * | sectsize, | ||
const char * | name, | ||
unsigned long | descsz, | ||
unsigned long | type | ||
) | [static] |
Definition at line 379 of file osabi.c.
References gdb_assert, and MAX_NOTESZ.
Referenced by generic_elf_osabi_sniff_abi_tag_sections().
void gdbarch_init_osabi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) |
Definition at line 320 of file osabi.c.
References gdb_osabi_handler::arch_info, gdbarch_info::bfd_arch_info, can_run_code_for(), GDB_OSABI_UNKNOWN, gdbarch_osabi_name(), gdb_osabi_handler::init_osabi, gdb_osabi_handler::next, gdb_osabi_handler::osabi, gdbarch_info::osabi, and warning().
Referenced by aarch64_gdbarch_init(), alpha_gdbarch_init(), arm_gdbarch_init(), bfin_gdbarch_init(), cris_gdbarch_init(), frv_gdbarch_init(), hppa_gdbarch_init(), i386_gdbarch_init(), ia64_gdbarch_init(), iq2000_gdbarch_init(), m32r_gdbarch_init(), m68k_gdbarch_init(), microblaze_gdbarch_init(), mips_gdbarch_init(), mn10300_gdbarch_init(), moxie_gdbarch_init(), nios2_gdbarch_init(), rs6000_gdbarch_init(), sh64_gdbarch_init(), sh_gdbarch_init(), sparc32_gdbarch_init(), tic6x_gdbarch_init(), tilegx_gdbarch_init(), v850_gdbarch_init(), vax_gdbarch_init(), and xstormy16_gdbarch_init().
enum gdb_osabi gdbarch_lookup_osabi | ( | bfd * | abfd | ) |
Definition at line 222 of file osabi.c.
References _, gdb_osabi_sniffer::arch, gdb_osabi_sniffer::flavour, GDB_OSABI_INVALID, GDB_OSABI_UNKNOWN, gdbarch_osabi_name(), internal_error(), gdb_osabi_sniffer::next, osabi_user, gdb_osabi_sniffer::sniffer, user_osabi_state, and user_selected_osabi.
Referenced by gdbarch_info_fill().
const char* gdbarch_osabi_name | ( | enum gdb_osabi | osabi | ) |
Definition at line 82 of file osabi.c.
References GDB_OSABI_INVALID, gdb_osabi_names, and GDB_OSABI_UNKNOWN.
Referenced by gdbarch_find_by_info(), gdbarch_init_osabi(), gdbarch_lookup_osabi(), gdbarch_register_osabi(), maint_print_c_tdesc_cmd(), set_osabi(), and show_osabi().
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 127 of file osabi.c.
References _, gdb_osabi_handler::arch_info, gdb_assert, gdb_osabi_available_names, GDB_OSABI_UNKNOWN, gdbarch_osabi_name(), gdb_osabi_handler::init_osabi, internal_error(), gdb_osabi_handler::next, gdb_osabi_handler::osabi, and xmalloc().
Referenced by _initialize_aarch64_linux_tdep(), _initialize_aarch64_newlib_tdep(), _initialize_alpha_linux_tdep(), _initialize_alpha_osf1_tdep(), _initialize_alphafbsd_tdep(), _initialize_alphanbsd_tdep(), _initialize_alphaobsd_tdep(), _initialize_amd64_darwin_tdep(), _initialize_amd64_dicos_tdep(), _initialize_amd64_linux_tdep(), _initialize_amd64_sol2_tdep(), _initialize_amd64_windows_tdep(), _initialize_amd64fbsd_tdep(), _initialize_amd64nbsd_tdep(), _initialize_amd64obsd_tdep(), _initialize_arm_linux_tdep(), _initialize_arm_netbsd_tdep(), _initialize_arm_symbian_tdep(), _initialize_armobsd_tdep(), _initialize_bfin_linux_tdep(), _initialize_cris_linux_tdep(), _initialize_hppa_linux_tdep(), _initialize_hppanbsd_tdep(), _initialize_i386_darwin_tdep(), _initialize_i386nbsd_tdep(), _initialize_i386nto_tdep(), _initialize_ia64_hpux_tdep(), _initialize_ia64_linux_tdep(), _initialize_ia64_vms_tdep(), _initialize_m68k_linux_tdep(), _initialize_microblaze_linux_tdep(), _initialize_mips64obsd_tdep(), _initialize_mips_irix_tdep(), _initialize_mips_linux_tdep(), _initialize_mipsnbsd_tdep(), _initialize_mn10300_linux_tdep(), _initialize_nios2_linux_tdep(), _initialize_ppc_linux_tdep(), _initialize_rs6000_aix_tdep(), _initialize_rs6000_lynx178_tdep(), _initialize_shnbsd_tdep(), _initialize_sparc64_linux_tdep(), _initialize_sparc64_sol2_tdep(), _initialize_sparc64fbsd_tdep(), _initialize_sparc64nbsd_tdep(), _initialize_sparc64obsd_tdep(), _initialize_tic6x_linux_tdep(), _initialize_tilegx_linux_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 204 of file osabi.c.
References gdb_osabi_sniffer::arch, gdb_osabi_sniffer::flavour, gdb_osabi_sniffer_list, gdb_osabi_sniffer::next, gdb_osabi_sniffer::sniffer, and xmalloc().
Referenced by _initialize_alphanbsd_tdep(), _initialize_amd64_dicos_tdep(), _initialize_arm_netbsd_tdep(), _initialize_arm_symbian_tdep(), _initialize_arm_tdep(), _initialize_armobsd_tdep(), _initialize_gdb_osabi(), _initialize_i386_darwin_tdep(), _initialize_i386nto_tdep(), _initialize_mips_irix_tdep(), _initialize_rs6000_aix_tdep(), _initialize_rs6000_lynx178_tdep(), and _initialize_shnbsd_tdep().
void generic_elf_osabi_sniff_abi_tag_sections | ( | bfd * | abfd, |
asection * | sect, | ||
void * | obj | ||
) |
Definition at line 423 of file osabi.c.
References _, check_note(), GDB_OSABI_FREEBSD_ELF, GDB_OSABI_HURD, GDB_OSABI_LINUX, GDB_OSABI_NETBSD_ELF, GDB_OSABI_OPENBSD_ELF, GDB_OSABI_SOLARIS, internal_error(), MAX_NOTESZ, and name.
Referenced by arm_elf_osabi_sniffer(), generic_elf_osabi_sniffer(), and mips_irix_elf_osabi_sniffer().
static enum gdb_osabi generic_elf_osabi_sniffer | ( | bfd * | abfd | ) | [static] |
Definition at line 523 of file osabi.c.
References GDB_OSABI_FREEBSD_ELF, GDB_OSABI_HPUX_ELF, GDB_OSABI_NETBSD_ELF, GDB_OSABI_OPENVMS, GDB_OSABI_SOLARIS, GDB_OSABI_UNKNOWN, generic_elf_osabi_sniff_abi_tag_sections(), memcmp(), and gdb_osabi_handler::osabi.
Referenced by _initialize_gdb_osabi().
enum gdb_osabi osabi_from_tdesc_string | ( | const char * | name | ) |
Definition at line 94 of file osabi.c.
References GDB_OSABI_INVALID, gdb_osabi_names, and GDB_OSABI_UNKNOWN.
Referenced by initialize_tdesc_amd64_avx_linux(), initialize_tdesc_amd64_linux(), initialize_tdesc_i386_avx_linux(), initialize_tdesc_i386_linux(), initialize_tdesc_i386_mmx_linux(), initialize_tdesc_mips_dsp_linux(), initialize_tdesc_mips_linux(), initialize_tdesc_nios2_linux(), initialize_tdesc_tic6x_c62x_linux(), initialize_tdesc_tic6x_c64x_linux(), initialize_tdesc_tic6x_c64xp_linux(), initialize_tdesc_x32_avx_linux(), and initialize_tdesc_x32_linux().
static void set_osabi | ( | char * | args, |
int | from_tty, | ||
struct cmd_list_element * | c | ||
) | [static] |
Definition at line 589 of file osabi.c.
References _, GDB_OSABI_DEFAULT, GDB_OSABI_INVALID, GDB_OSABI_UNKNOWN, gdbarch_info_init(), gdbarch_osabi_name(), gdbarch_update_p(), internal_error(), osabi_auto, osabi_user, set_osabi_string, user_osabi_state, and user_selected_osabi.
Referenced by _initialize_gdb_osabi().
static void show_osabi | ( | struct ui_file * | file, |
int | from_tty, | ||
struct cmd_list_element * | c, | ||
const char * | value | ||
) | [static] |
Definition at line 630 of file osabi.c.
References _, fprintf_filtered(), GDB_OSABI_DEFAULT, GDB_OSABI_UNKNOWN, gdbarch_osabi(), gdbarch_osabi_name(), get_current_arch(), osabi_auto, user_osabi_state, and user_selected_osabi.
Referenced by _initialize_gdb_osabi().
Referenced by initialize_all_files().
const char* gdb_osabi_available_names[GDB_OSABI_INVALID+3] [static] |
{ "auto", "default", "none", NULL }
Definition at line 39 of file osabi.c.
Referenced by _initialize_gdb_osabi(), and gdbarch_register_osabi().
struct gdb_osabi_handler* gdb_osabi_handler_list [static] |
const char* const gdb_osabi_names[] [static] |
Definition at line 49 of file osabi.c.
Referenced by _initialize_gdb_osabi(), gdbarch_osabi_name(), and osabi_from_tdesc_string().
struct gdb_osabi_sniffer* gdb_osabi_sniffer_list [static] |
Definition at line 201 of file osabi.c.
Referenced by gdbarch_register_osabi_sniffer().
const char* set_osabi_string [static] |
Definition at line 45 of file osabi.c.
Referenced by _initialize_gdb_osabi(), and set_osabi().
enum { ... } user_osabi_state [static] |
Referenced by _initialize_gdb_osabi(), gdbarch_lookup_osabi(), set_osabi(), and show_osabi().
enum gdb_osabi user_selected_osabi [static] |
Definition at line 38 of file osabi.c.
Referenced by gdbarch_lookup_osabi(), set_osabi(), and show_osabi().