* amd64obsd-tdep.c (amd64obsd_init_abi): Don't set

regset_from_core_section.
(amd64obsd_core_init_abi): New function that sets
regset_from_core_section.
(_initialize_amd64obsd_tdep): Use amd64obsd_core_init_abi for
traditional core dumps.
This commit is contained in:
Mark Kettenis 2011-12-17 15:45:56 +00:00
parent 2c9d87964d
commit a3e3e961b4
2 changed files with 21 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2011-12-17 Mark Kettenis <kettenis@gnu.org>
* amd64obsd-tdep.c (amd64obsd_init_abi): Don't set
regset_from_core_section.
(amd64obsd_core_init_abi): New function that sets
regset_from_core_section.
(_initialize_amd64obsd_tdep): Use amd64obsd_core_init_abi for
traditional core dumps.
2011-12-17 Mark Kettenis <kettenis@gnu.org>
* amd64obsd-tdep.c (amd64obsd_sigtramp_p): Detect new signal

View File

@ -466,9 +466,6 @@ amd64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
tdep->gregset_num_regs = ARRAY_SIZE (amd64obsd_r_reg_offset);
tdep->sizeof_gregset = 24 * 8;
set_gdbarch_regset_from_core_section (gdbarch,
amd64obsd_regset_from_core_section);
tdep->jb_pc_offset = 7 * 8;
tdep->sigtramp_p = amd64obsd_sigtramp_p;
@ -487,6 +484,17 @@ amd64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Unwind kernel trap frames correctly. */
frame_unwind_prepend_unwinder (gdbarch, &amd64obsd_trapframe_unwind);
}
/* Traditional (a.out) NetBSD-style core dumps. */
static void
amd64obsd_core_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
amd64obsd_init_abi (info, gdbarch);
set_gdbarch_regset_from_core_section
(gdbarch, amd64obsd_regset_from_core_section);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
@ -503,5 +511,5 @@ _initialize_amd64obsd_tdep (void)
/* OpenBSD uses traditional (a.out) NetBSD-style core dumps. */
gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64,
GDB_OSABI_NETBSD_AOUT, amd64obsd_init_abi);
GDB_OSABI_NETBSD_AOUT, amd64obsd_core_init_abi);
}