X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Farm-symbian-tdep.c;h=b17f9c60eb94f0723e3e0e87ed08f4bf306f6e97;hb=d2d1ea20aef6ed97232280b5e15a52b8d7dc7b7d;hp=32f65f40a50aeccc8dc3ed894188dbd376f8050d;hpb=081058572de4f2c063bfbe76017134a9d8fd9907;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/arm-symbian-tdep.c b/gdb/arm-symbian-tdep.c index 32f65f40a5..b17f9c60eb 100644 --- a/gdb/arm-symbian-tdep.c +++ b/gdb/arm-symbian-tdep.c @@ -1,7 +1,6 @@ /* ARM Symbian OS target support. - Copyright (C) 2008, 2009, 2010 - Free Software Foundation, Inc. + Copyright (C) 2008-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -30,7 +29,7 @@ /* If PC is in a DLL import stub, return the address of the `real' function belonging to the stub. */ -CORE_ADDR +static CORE_ADDR arm_symbian_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc) { struct gdbarch *gdbarch; @@ -39,7 +38,7 @@ arm_symbian_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc) CORE_ADDR dest; gdb_byte buf[4]; - if (!in_plt_section (pc, NULL)) + if (!in_plt_section (pc)) return 0; if (target_read_memory (pc, buf, 4) != 0) @@ -64,8 +63,6 @@ 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); @@ -78,6 +75,10 @@ arm_symbian_init_abi (struct gdbarch_info info, 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); } @@ -86,7 +87,7 @@ arm_symbian_init_abi (struct gdbarch_info info, static enum gdb_osabi arm_symbian_osabi_sniffer (bfd *abfd) { - Elf_Internal_Phdr *phdrs, **segments; + Elf_Internal_Phdr *phdrs; long phdrs_size; int num_phdrs, i; @@ -105,7 +106,7 @@ arm_symbian_osabi_sniffer (bfd *abfd) if (phdrs_size == -1) return GDB_OSABI_UNKNOWN; - phdrs = alloca (phdrs_size); + phdrs = (Elf_Internal_Phdr *) alloca (phdrs_size); num_phdrs = bfd_get_elf_phdrs (abfd, phdrs); if (num_phdrs == -1) return GDB_OSABI_UNKNOWN; @@ -118,8 +119,9 @@ arm_symbian_osabi_sniffer (bfd *abfd) return GDB_OSABI_SYMBIAN; } +void _initialize_arm_symbian_tdep (); void -_initialize_arm_symbian_tdep (void) +_initialize_arm_symbian_tdep () { gdbarch_register_osabi_sniffer (bfd_arch_arm, bfd_target_elf_flavour,