aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2011-12-17 15:45:56 +0000
committerMark Kettenis <kettenis@gnu.org>2011-12-17 15:45:56 +0000
commita3e3e961b47d7a2105c419e3b3f5583fb0647a31 (patch)
treed4b843e1faf1b47c301a8ccfb81c181e74fa4a53
parent2c9d87964db3d31554f2dce6c68d7b68db7edfa0 (diff)
downloadgdb-a3e3e961b47d7a2105c419e3b3f5583fb0647a31.zip
gdb-a3e3e961b47d7a2105c419e3b3f5583fb0647a31.tar.gz
gdb-a3e3e961b47d7a2105c419e3b3f5583fb0647a31.tar.bz2
* 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.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/amd64obsd-tdep.c16
2 files changed, 21 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 296feb7..f73ed04 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
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
trampoline to be introduced in OpenBSD 5.0.
diff --git a/gdb/amd64obsd-tdep.c b/gdb/amd64obsd-tdep.c
index e66cd2b..4d592e2 100644
--- a/gdb/amd64obsd-tdep.c
+++ b/gdb/amd64obsd-tdep.c
@@ -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);
}