summaryrefslogtreecommitdiff
path: root/gdb/corelow.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-12-14 15:30:25 +0000
committerTom Tromey <tromey@redhat.com>2012-12-14 15:30:25 +0000
commit1f82969cb44bf57e2f05f725403cc37f6d2fa5c5 (patch)
tree9bf6e5ca6a792bcf923e87f36bb5b23d2b2be41f /gdb/corelow.c
parent7f80295e5456b9df4c2b8ea003b3c9a79e62bfa3 (diff)
downloadgdb-1f82969cb44bf57e2f05f725403cc37f6d2fa5c5.tar.gz
gdb
* NEWS: Mention "info proc" and core files. * corelow.c (core_info_proc): New function. (init_core_ops): Set to_info_proc. * gdbarch.c, gdbarch.h: Rebuild. * gdbarch.sh (core_info_proc): New method. * infcmd.c (info_proc_cmd_1): Invoke target_info_proc first. * linux-tdep.c (linux_core_info_proc_mappings) (linux_core_info_proc): New functions. (linux_find_memory_region_ftype): New typedef. (linux_find_memory_regions_full): New function, from linux_find_memory_regions. (struct linux_find_memory_regions_data): New. (linux_find_memory_regions_thunk): New function. (linux_find_memory_regions): Rewrite. (struct linux_make_mappings_data): New. (linux_make_mappings_callback) (linux_make_mappings_corefile_notes): New functions. (linux_make_corefile_notes): Call linux_make_mappings_corefile_notes. (linux_init_abi): Call set_gdbarch_core_info_proc. * target.c (target_info_proc): Return 'int'. * target.h (target_info_proc): Update. gdb/doc * gdb.texinfo (SVR4 Process Information): Mention core files. gdb/testsuite * gdb.base/info-proc.exp: Add core file tests. bfd * elf.c (elfcore_grok_note) <NT_FILE>: New case.
Diffstat (limited to 'gdb/corelow.c')
-rw-r--r--gdb/corelow.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/corelow.c b/gdb/corelow.c
index 99611ba2cbf..589f2312072 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -927,6 +927,19 @@ core_has_registers (struct target_ops *ops)
return (core_bfd != NULL);
}
+/* Implement the to_info_proc method. */
+
+static void
+core_info_proc (struct target_ops *ops, char *args, enum info_proc_what request)
+{
+ struct gdbarch *gdbarch = get_current_arch ();
+
+ /* Since this is the core file target, call the 'core_info_proc'
+ method on gdbarch, not 'info_proc'. */
+ if (gdbarch_core_info_proc_p (gdbarch))
+ gdbarch_core_info_proc (gdbarch, args, request);
+}
+
/* Fill in core_ops with its defined operations and properties. */
static void
@@ -953,6 +966,7 @@ init_core_ops (void)
core_ops.to_has_memory = core_has_memory;
core_ops.to_has_stack = core_has_stack;
core_ops.to_has_registers = core_has_registers;
+ core_ops.to_info_proc = core_info_proc;
core_ops.to_magic = OPS_MAGIC;
if (core_target)