aboutsummaryrefslogtreecommitdiff
path: root/gdb/target.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2012-01-20 09:49:01 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2012-01-20 09:49:01 +0000
commit145b16a97aad6c8c3f30119d7c42b48753a0b1f8 (patch)
tree3aa77e79a0e0f7ffde18ce377e14c1b114b01c48 /gdb/target.c
parentb9e7b9c3de60f6aef716ac169d82418ea27d4331 (diff)
downloadgdb-145b16a97aad6c8c3f30119d7c42b48753a0b1f8.zip
gdb-145b16a97aad6c8c3f30119d7c42b48753a0b1f8.tar.gz
gdb-145b16a97aad6c8c3f30119d7c42b48753a0b1f8.tar.bz2
ChangeLog:
* defs.h (enum info_proc_what): Moved here from linux-nat.c * infcmd.c: (info_proc_cmd_1): New function. (info_proc_cmd): New function, moved here from equivalent routine orignally in linux-nat.c. (info_proc_cmd_mappings): Likewise. (info_proc_cmd_stat): Likewise. (info_proc_cmd_status): Likewise. (info_proc_cmd_cwd): Likewise. (info_proc_cmd_cmdline): Likewise. (info_proc_cmd_exe): Likewise. (info_proc_cmd_all): Likewise. (_initialize_infcmd): Install "info proc" command and subcommands. * target.h (struct target_ops): Add to_info_proc. (target_info_proc): Add prototype. * target.c (target_info_proc): New function. * procfs.c (procfs_info_proc): Add prototype. (info_proc_cmd): Rename into ... (procfs_info_proc): ... this. Update argument types as appropriate for a to_info_proc implementation. Handle "what" argument. (procfs_target): Install procfs_info_proc. (_initialize_procfs): No longer install "info proc" command. * linux-nat.c: (enum info_proc_what): Remove. (linux_nat_info_proc_cmd_1): Rename into ... (linux_nat_info_proc): ... this. Update argument types as appropriate for a to_info_proc implementation. (linux_nat_info_proc_cmd): Remove. (linux_nat_info_proc_cmd_mappings): Likewise. (linux_nat_info_proc_cmd_stat): Likewise. (linux_nat_info_proc_cmd_status): Likewise. (linux_nat_info_proc_cmd_cwd): Likewise. (linux_nat_info_proc_cmd_cmdline): Likewise. (linux_nat_info_proc_cmd_exe): Likewise. (linux_nat_info_proc_cmd_all): Likewise. (linux_target_install_ops): Install linux_nat_info_proc. (_initialize_linux_nat): No longer install "info proc" command and subcommands. testsuite/ChangeLog: * gdb.base/info-proc.exp: Also run on remote targets. Main "info proc" command is now always present; whether target supports actual info proc operation is detected when attempting to issue the command.
Diffstat (limited to 'gdb/target.c')
-rw-r--r--gdb/target.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gdb/target.c b/gdb/target.c
index 32260e1..c64a9d8 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -3087,6 +3087,38 @@ target_supports_non_stop (void)
return 0;
}
+/* Implement the "info proc" command. */
+
+void
+target_info_proc (char *args, enum info_proc_what what)
+{
+ struct target_ops *t;
+
+ /* If we're already connected to something that can get us OS
+ related data, use it. Otherwise, try using the native
+ target. */
+ if (current_target.to_stratum >= process_stratum)
+ t = current_target.beneath;
+ else
+ t = find_default_run_target (NULL);
+
+ for (; t != NULL; t = t->beneath)
+ {
+ if (t->to_info_proc != NULL)
+ {
+ t->to_info_proc (t, args, what);
+
+ if (targetdebug)
+ fprintf_unfiltered (gdb_stdlog,
+ "target_info_proc (\"%s\", %d)\n", args, what);
+
+ return;
+ }
+ }
+
+ error (_("Not supported on this target."));
+}
+
static int
find_default_supports_disable_randomization (void)
{