void sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); frame_unwind_append_unwinder (gdbarch, &sparc64_sol2_sigtramp_frame_unwind); sparc64_init_abi (info, gdbarch); /* The Sun compilers (Sun ONE Studio, Forte Developer, Sun WorkShop, SunPRO) compiler puts out 0 instead of the address in N_SO stabs. Starting with SunPRO 3.0, the compiler does this for N_FUN stabs too. */ set_gdbarch_sofun_address_maybe_missing (gdbarch, 1); /* The Sun compilers also do "globalization"; see the comment in sparc_sol2_static_transform_name for more information. */ set_gdbarch_static_transform_name (gdbarch, sparc_sol2_static_transform_name); /* Solaris has SVR4-style shared libraries... */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); set_gdbarch_skip_solib_resolver (gdbarch, sol2_skip_solib_resolver); set_solib_svr4_fetch_link_map_offsets (gdbarch, svr4_lp64_fetch_link_map_offsets); /* ...which means that we need some special handling when doing prologue analysis. */ tdep->plt_entry_size = 16; /* Solaris has kernel-assisted single-stepping support. */ set_gdbarch_software_single_step (gdbarch, NULL); /* How to print LWP PTIDs from core files. */ set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str); }
static void i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); set_gdbarch_skip_trampoline_code (gdbarch, i386_cygwin_skip_trampoline_code); set_gdbarch_skip_main_prologue (gdbarch, i386_skip_main_prologue); tdep->struct_return = reg_struct_return; tdep->gregset_reg_offset = i386_windows_gregset_reg_offset; tdep->gregset_num_regs = ARRAY_SIZE (i386_windows_gregset_reg_offset); tdep->sizeof_gregset = I386_WINDOWS_SIZEOF_GREGSET; set_solib_ops (gdbarch, &solib_target_so_ops); /* Core file support. */ set_gdbarch_regset_from_core_section (gdbarch, i386_windows_regset_from_core_section); set_gdbarch_core_xfer_shared_libraries (gdbarch, windows_core_xfer_shared_libraries); set_gdbarch_core_pid_to_str (gdbarch, i386_windows_core_pid_to_str); set_gdbarch_auto_wide_charset (gdbarch, i386_cygwin_auto_wide_charset); /* Canonical paths on this target look like `c:\Program Files\Foo App\mydll.dll', for example. */ set_gdbarch_has_dos_based_file_system (gdbarch, 1); set_gdbarch_iterate_over_objfiles_in_search_order (gdbarch, windows_iterate_over_objfiles_in_search_order); }
static void i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); windows_init_abi (info, gdbarch); set_gdbarch_skip_trampoline_code (gdbarch, i386_cygwin_skip_trampoline_code); set_gdbarch_skip_main_prologue (gdbarch, i386_skip_main_prologue); tdep->struct_return = reg_struct_return; tdep->gregset_reg_offset = i386_windows_gregset_reg_offset; tdep->gregset_num_regs = ARRAY_SIZE (i386_windows_gregset_reg_offset); tdep->sizeof_gregset = I386_WINDOWS_SIZEOF_GREGSET; tdep->sizeof_fpregset = 0; /* Core file support. */ set_gdbarch_core_xfer_shared_libraries (gdbarch, windows_core_xfer_shared_libraries); set_gdbarch_core_pid_to_str (gdbarch, i386_windows_core_pid_to_str); set_gdbarch_auto_wide_charset (gdbarch, i386_cygwin_auto_wide_charset); }
static void amd64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); tdep->gregset_reg_offset = amd64_sol2_gregset_reg_offset; tdep->gregset_num_regs = ARRAY_SIZE (amd64_sol2_gregset_reg_offset); tdep->sizeof_gregset = 28 * 8; amd64_init_abi (info, gdbarch, amd64_target_description (X86_XSTATE_SSE_MASK, true)); tdep->sigtramp_p = amd64_sol2_sigtramp_p; tdep->sigcontext_addr = amd64_sol2_mcontext_addr; tdep->sc_reg_offset = tdep->gregset_reg_offset; tdep->sc_num_regs = tdep->gregset_num_regs; /* Solaris uses SVR4-style shared libraries. */ set_gdbarch_skip_solib_resolver (gdbarch, sol2_skip_solib_resolver); set_solib_svr4_fetch_link_map_offsets (gdbarch, svr4_lp64_fetch_link_map_offsets); /* How to print LWP PTIDs from core files. */ set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str); }
static void i386_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); /* Solaris is SVR4-based. */ i386_svr4_init_abi (info, gdbarch); /* The SunPRO compiler puts out 0 instead of the address in N_SO symbols, and for SunPRO 3.0, N_FUN symbols too. */ set_gdbarch_sofun_address_maybe_missing (gdbarch, 1); /* Handle SunPRO encoding of static symbols. */ set_gdbarch_static_transform_name (gdbarch, i386_sol2_static_transform_name); /* Solaris reserves space for its FPU emulator in `fpregset_t'. There is also some space reserved for the registers of a Weitek math coprocessor. */ tdep->gregset_reg_offset = i386_sol2_gregset_reg_offset; tdep->gregset_num_regs = ARRAY_SIZE (i386_sol2_gregset_reg_offset); tdep->sizeof_gregset = 19 * 4; tdep->sizeof_fpregset = 380; /* Signal trampolines are slightly different from SVR4. */ tdep->sigtramp_p = i386_sol2_sigtramp_p; tdep->sigcontext_addr = i386_sol2_mcontext_addr; tdep->sc_reg_offset = tdep->gregset_reg_offset; tdep->sc_num_regs = tdep->gregset_num_regs; /* Solaris has SVR4-style shared libraries. */ set_gdbarch_skip_solib_resolver (gdbarch, sol2_skip_solib_resolver); set_solib_svr4_fetch_link_map_offsets (gdbarch, svr4_ilp32_fetch_link_map_offsets); /* How to print LWP PTIDs from core files. */ set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str); }