aboutsummaryrefslogtreecommitdiff
path: root/gdb/corelow.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-09-10 21:14:11 +0000
committerDaniel Jacobowitz <drow@false.org>2007-09-10 21:14:11 +0000
commit4eb0ad19f379a411b76d7adf2664c46f79402878 (patch)
tree10d6012bd8cc9d1f46589acbdccdd215cd792bcb /gdb/corelow.c
parent6a6b96b9c2552b97902d8ef1fbbce207328eef16 (diff)
downloadgdb-4eb0ad19f379a411b76d7adf2664c46f79402878.zip
gdb-4eb0ad19f379a411b76d7adf2664c46f79402878.tar.gz
gdb-4eb0ad19f379a411b76d7adf2664c46f79402878.tar.bz2
* arch-utils.c (gdbarch_info_fill): Also try core_bfd.
* corelow.c (core_read_description): New. (init_core_ops): Set to_read_description. * gdbarch.sh: Add gdbarch_core_read_description. * mips-linux-tdep.c (mips_linux_core_read_description): New. (mips_linux_init_abi): Call set_gdbarch_core_read_description. * mips-tdep.c (mips_tdesc_gp32, mips_tdesc_gp64): New. (mips_register_g_packet_guesses): Use them. (_initialize_mips_tdep): Initialize them. * mips-tdep.h (mips_tdesc_gp32, mips_tdesc_gp64): Declare. * gdbarch.h, gdbarch.c: Regenerated.
Diffstat (limited to 'gdb/corelow.c')
-rw-r--r--gdb/corelow.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/corelow.c b/gdb/corelow.c
index 408e95a..af80dc3 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -635,6 +635,20 @@ core_file_thread_alive (ptid_t tid)
return 1;
}
+/* Ask the current architecture what it knows about this core file.
+ That will be used, in turn, to pick a better architecture. This
+ wrapper could be avoided if targets got a chance to specialize
+ core_ops. */
+
+static const struct target_desc *
+core_read_description (struct target_ops *target)
+{
+ if (gdbarch_core_read_description_p (current_gdbarch))
+ return gdbarch_core_read_description (current_gdbarch, target, core_bfd);
+
+ return NULL;
+}
+
/* Fill in core_ops with its defined operations and properties. */
static void
@@ -656,6 +670,7 @@ init_core_ops (void)
core_ops.to_remove_breakpoint = ignore;
core_ops.to_create_inferior = find_default_create_inferior;
core_ops.to_thread_alive = core_file_thread_alive;
+ core_ops.to_read_description = core_read_description;
core_ops.to_stratum = core_stratum;
core_ops.to_has_memory = 1;
core_ops.to_has_stack = 1;