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 arm_wince_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); tdep->arm_breakpoint = arm_wince_le_breakpoint; tdep->arm_breakpoint_size = sizeof (arm_wince_le_breakpoint); tdep->thumb_breakpoint = arm_wince_thumb_le_breakpoint; tdep->thumb_breakpoint_size = sizeof (arm_wince_thumb_le_breakpoint); tdep->struct_return = pcc_struct_return; tdep->fp_model = ARM_FLOAT_SOFT_VFP; tdep->jb_pc = ARM_WINCE_JB_PC; tdep->jb_elt_size = ARM_WINCE_JB_ELEMENT_SIZE; /* On ARM WinCE char defaults to signed. */ set_gdbarch_char_signed (gdbarch, 1); /* Shared library handling. */ set_solib_ops (gdbarch, &solib_target_so_ops); set_gdbarch_skip_trampoline_code (gdbarch, arm_pe_skip_trampoline_code); /* Single stepping. */ set_gdbarch_software_single_step (gdbarch, arm_software_single_step); /* Skip call to __gccmain that gcc places in main. */ set_gdbarch_skip_main_prologue (gdbarch, arm_wince_skip_main_prologue); /* Canonical paths on this target look like `\Windows\coredll.dll', for example. */ set_gdbarch_has_dos_based_file_system (gdbarch, 1); }
static void arm_symbian_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); /* Shared library handling. */ set_gdbarch_skip_trampoline_code (gdbarch, arm_symbian_skip_trampoline_code); /* On this target, the toolchain outputs ELF files, with `sym' for filename extension (e.g., `FOO.sym'); these are post-linker processed into PE-ish DLLs (e.g., `FOO.dll'), and it's these that are actually copied to and run on the target. Naturally, when listing shared libraries, Symbian stubs report the DLL filenames. Setting this makes it so that GDB automatically looks for the corresponding ELF files on the host's filesystem. */ set_gdbarch_solib_symbols_extension (gdbarch, "sym"); /* Canonical paths on this target look like `c:\sys\bin\bar.dll', for example. */ set_gdbarch_has_dos_based_file_system (gdbarch, 1); set_solib_ops (gdbarch, &solib_target_so_ops); }