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/linux-nat.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/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 132 |
1 files changed, 3 insertions, 129 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 30f9062..6b3c68f 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -4803,35 +4803,9 @@ linux_nat_make_corefile_notes (bfd *obfd, int *note_size) /* Implement the "info proc" command. */ -enum info_proc_what - { - /* Display the default cmdline, cwd and exe outputs. */ - IP_MINIMAL, - - /* Display `info proc mappings'. */ - IP_MAPPINGS, - - /* Display `info proc status'. */ - IP_STATUS, - - /* Display `info proc stat'. */ - IP_STAT, - - /* Display `info proc cmdline'. */ - IP_CMDLINE, - - /* Display `info proc exe'. */ - IP_EXE, - - /* Display `info proc cwd'. */ - IP_CWD, - - /* Display all of the above. */ - IP_ALL - }; - static void -linux_nat_info_proc_cmd_1 (char *args, enum info_proc_what what, int from_tty) +linux_nat_info_proc (struct target_ops *ops, char *args, + enum info_proc_what what) { /* A long is used for pid instead of an int to avoid a loss of precision compiler warning from the output of strtoul. */ @@ -5072,70 +5046,6 @@ linux_nat_info_proc_cmd_1 (char *args, enum info_proc_what what, int from_tty) } } -/* Implement `info proc' when given without any futher parameters. */ - -static void -linux_nat_info_proc_cmd (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_MINIMAL, from_tty); -} - -/* Implement `info proc mappings'. */ - -static void -linux_nat_info_proc_cmd_mappings (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_MAPPINGS, from_tty); -} - -/* Implement `info proc stat'. */ - -static void -linux_nat_info_proc_cmd_stat (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_STAT, from_tty); -} - -/* Implement `info proc status'. */ - -static void -linux_nat_info_proc_cmd_status (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_STATUS, from_tty); -} - -/* Implement `info proc cwd'. */ - -static void -linux_nat_info_proc_cmd_cwd (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_CWD, from_tty); -} - -/* Implement `info proc cmdline'. */ - -static void -linux_nat_info_proc_cmd_cmdline (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_CMDLINE, from_tty); -} - -/* Implement `info proc exe'. */ - -static void -linux_nat_info_proc_cmd_exe (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_EXE, from_tty); -} - -/* Implement `info proc all'. */ - -static void -linux_nat_info_proc_cmd_all (char *args, int from_tty) -{ - linux_nat_info_proc_cmd_1 (args, IP_ALL, from_tty); -} - /* Implement the to_xfer_partial interface for memory reads using the /proc filesystem. Because we can use a single read() call for /proc, this can be much more efficient than banging away at PTRACE_PEEKTEXT, @@ -5430,6 +5340,7 @@ linux_target_install_ops (struct target_ops *t) t->to_follow_fork = linux_child_follow_fork; t->to_find_memory_regions = linux_nat_find_memory_regions; t->to_make_corefile_notes = linux_nat_make_corefile_notes; + t->to_info_proc = linux_nat_info_proc; super_xfer_partial = t->to_xfer_partial; t->to_xfer_partial = linux_xfer_partial; @@ -5940,43 +5851,6 @@ extern initialize_file_ftype _initialize_linux_nat; void _initialize_linux_nat (void) { - static struct cmd_list_element *info_proc_cmdlist; - - add_prefix_cmd ("proc", class_info, linux_nat_info_proc_cmd, - _("\ -Show /proc process information about any running process.\n\ -Specify any process id, or use the program being debugged by default."), - &info_proc_cmdlist, "info proc ", - 1/*allow-unknown*/, &infolist); - - add_cmd ("mappings", class_info, linux_nat_info_proc_cmd_mappings, _("\ -List of mapped memory regions."), - &info_proc_cmdlist); - - add_cmd ("stat", class_info, linux_nat_info_proc_cmd_stat, _("\ -List process info from /proc/PID/stat."), - &info_proc_cmdlist); - - add_cmd ("status", class_info, linux_nat_info_proc_cmd_status, _("\ -List process info from /proc/PID/status."), - &info_proc_cmdlist); - - add_cmd ("cwd", class_info, linux_nat_info_proc_cmd_cwd, _("\ -List current working directory of the process."), - &info_proc_cmdlist); - - add_cmd ("cmdline", class_info, linux_nat_info_proc_cmd_cmdline, _("\ -List command line arguments of the process."), - &info_proc_cmdlist); - - add_cmd ("exe", class_info, linux_nat_info_proc_cmd_exe, _("\ -List absolute filename for executable of the process."), - &info_proc_cmdlist); - - add_cmd ("all", class_info, linux_nat_info_proc_cmd_all, _("\ -List all available /proc info."), - &info_proc_cmdlist); - add_setshow_zinteger_cmd ("lin-lwp", class_maintenance, &debug_linux_nat, _("\ Set debugging of GNU/Linux lwp module."), _("\ |