diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2012-01-20 09:49:01 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2012-01-20 09:49:01 +0000 |
commit | 145b16a97aad6c8c3f30119d7c42b48753a0b1f8 (patch) | |
tree | 3aa77e79a0e0f7ffde18ce377e14c1b114b01c48 /gdb/target.c | |
parent | b9e7b9c3de60f6aef716ac169d82418ea27d4331 (diff) | |
download | gdb-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.c | 32 |
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) { |