aboutsummaryrefslogtreecommitdiff
path: root/gdb/linux-nat.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/linux-nat.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/linux-nat.c')
-rw-r--r--gdb/linux-nat.c132
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."), _("\