mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
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.
This commit is contained in:
parent
b9e7b9c3de
commit
145b16a97a
@ -1,3 +1,45 @@
|
||||
2012-01-20 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
|
||||
* 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.
|
||||
|
||||
2012-01-20 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
|
||||
* configure.ac [AC_CHECK_FUNCS]: Check for readlink.
|
||||
|
29
gdb/defs.h
29
gdb/defs.h
@ -752,6 +752,35 @@ extern struct command_line *read_command_lines_1 (char * (*) (void), int,
|
||||
|
||||
extern void free_command_lines (struct command_line **);
|
||||
|
||||
/* Parameters of 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
|
||||
};
|
||||
|
||||
/* String containing the current directory (what getwd would return). */
|
||||
|
||||
extern char *current_directory;
|
||||
|
108
gdb/infcmd.c
108
gdb/infcmd.c
@ -2805,9 +2805,82 @@ unset_command (char *args, int from_tty)
|
||||
help_list (unsetlist, "unset ", -1, gdb_stdout);
|
||||
}
|
||||
|
||||
/* Implement `info proc' family of commands. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_1 (char *args, enum info_proc_what what, int from_tty)
|
||||
{
|
||||
target_info_proc (args, what);
|
||||
}
|
||||
|
||||
/* Implement `info proc' when given without any futher parameters. */
|
||||
|
||||
static void
|
||||
info_proc_cmd (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_MINIMAL, from_tty);
|
||||
}
|
||||
|
||||
/* Implement `info proc mappings'. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_mappings (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_MAPPINGS, from_tty);
|
||||
}
|
||||
|
||||
/* Implement `info proc stat'. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_stat (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_STAT, from_tty);
|
||||
}
|
||||
|
||||
/* Implement `info proc status'. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_status (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_STATUS, from_tty);
|
||||
}
|
||||
|
||||
/* Implement `info proc cwd'. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_cwd (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_CWD, from_tty);
|
||||
}
|
||||
|
||||
/* Implement `info proc cmdline'. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_cmdline (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_CMDLINE, from_tty);
|
||||
}
|
||||
|
||||
/* Implement `info proc exe'. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_exe (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_EXE, from_tty);
|
||||
}
|
||||
|
||||
/* Implement `info proc all'. */
|
||||
|
||||
static void
|
||||
info_proc_cmd_all (char *args, int from_tty)
|
||||
{
|
||||
info_proc_cmd_1 (args, IP_ALL, from_tty);
|
||||
}
|
||||
|
||||
void
|
||||
_initialize_infcmd (void)
|
||||
{
|
||||
static struct cmd_list_element *info_proc_cmdlist;
|
||||
struct cmd_list_element *c = NULL;
|
||||
|
||||
/* Add the filename of the terminal connected to inferior I/O. */
|
||||
@ -3034,4 +3107,39 @@ Register name as argument means describe only that register."));
|
||||
|
||||
add_info ("vector", vector_info,
|
||||
_("Print the status of the vector unit\n"));
|
||||
|
||||
add_prefix_cmd ("proc", class_info, 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, info_proc_cmd_mappings, _("\
|
||||
List of mapped memory regions."),
|
||||
&info_proc_cmdlist);
|
||||
|
||||
add_cmd ("stat", class_info, info_proc_cmd_stat, _("\
|
||||
List process info from /proc/PID/stat."),
|
||||
&info_proc_cmdlist);
|
||||
|
||||
add_cmd ("status", class_info, info_proc_cmd_status, _("\
|
||||
List process info from /proc/PID/status."),
|
||||
&info_proc_cmdlist);
|
||||
|
||||
add_cmd ("cwd", class_info, info_proc_cmd_cwd, _("\
|
||||
List current working directory of the process."),
|
||||
&info_proc_cmdlist);
|
||||
|
||||
add_cmd ("cmdline", class_info, info_proc_cmd_cmdline, _("\
|
||||
List command line arguments of the process."),
|
||||
&info_proc_cmdlist);
|
||||
|
||||
add_cmd ("exe", class_info, info_proc_cmd_exe, _("\
|
||||
List absolute filename for executable of the process."),
|
||||
&info_proc_cmdlist);
|
||||
|
||||
add_cmd ("all", class_info, info_proc_cmd_all, _("\
|
||||
List all available /proc info."),
|
||||
&info_proc_cmdlist);
|
||||
}
|
||||
|
132
gdb/linux-nat.c
132
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."), _("\
|
||||
|
33
gdb/procfs.c
33
gdb/procfs.c
@ -151,6 +151,9 @@ static char * procfs_make_note_section (bfd *, int *);
|
||||
|
||||
static int procfs_can_use_hw_breakpoint (int, int, int);
|
||||
|
||||
static void procfs_info_proc (struct target_ops *, char *,
|
||||
enum info_proc_what);
|
||||
|
||||
#if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
|
||||
/* When GDB is built as 64-bit application on Solaris, the auxv data
|
||||
is presented in 64-bit format. We need to provide a custom parser
|
||||
@ -211,6 +214,7 @@ procfs_target (void)
|
||||
t->to_has_thread_control = tc_schedlock;
|
||||
t->to_find_memory_regions = proc_find_memory_regions;
|
||||
t->to_make_corefile_notes = procfs_make_note_section;
|
||||
t->to_info_proc = procfs_info_proc;
|
||||
|
||||
#if defined(PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
|
||||
t->to_auxv_parse = procfs_auxv_parse;
|
||||
@ -5390,7 +5394,8 @@ info_proc_mappings (procinfo *pi, int summary)
|
||||
/* Implement the "info proc" command. */
|
||||
|
||||
static void
|
||||
info_proc_cmd (char *args, int from_tty)
|
||||
procfs_info_proc (struct target_ops *ops, char *args,
|
||||
enum info_proc_what what)
|
||||
{
|
||||
struct cleanup *old_chain;
|
||||
procinfo *process = NULL;
|
||||
@ -5401,6 +5406,20 @@ info_proc_cmd (char *args, int from_tty)
|
||||
int tid = 0;
|
||||
int mappings = 0;
|
||||
|
||||
switch (what)
|
||||
{
|
||||
case IP_MINIMAL:
|
||||
break;
|
||||
|
||||
case IP_MAPPINGS:
|
||||
case IP_ALL:
|
||||
mappings = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
error (_("Not supported on this target."));
|
||||
}
|
||||
|
||||
old_chain = make_cleanup (null_cleanup, 0);
|
||||
if (args)
|
||||
{
|
||||
@ -5419,14 +5438,6 @@ info_proc_cmd (char *args, int from_tty)
|
||||
{
|
||||
tid = strtoul (argv[0] + 1, NULL, 10);
|
||||
}
|
||||
else if (strncmp (argv[0], "mappings", strlen (argv[0])) == 0)
|
||||
{
|
||||
mappings = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* [...] */
|
||||
}
|
||||
argv++;
|
||||
}
|
||||
if (pid == 0)
|
||||
@ -5567,10 +5578,6 @@ _initialize_procfs (void)
|
||||
{
|
||||
observer_attach_inferior_created (procfs_inferior_created);
|
||||
|
||||
add_info ("proc", info_proc_cmd, _("\
|
||||
Show /proc process information about any running process.\n\
|
||||
Specify process id, or use the program being debugged by default.\n\
|
||||
Specify keyword 'mappings' for detailed info on memory mappings."));
|
||||
add_com ("proc-trace-entry", no_class, proc_trace_sysentry_cmd,
|
||||
_("Give a trace of entries into the syscall."));
|
||||
add_com ("proc-trace-exit", no_class, proc_trace_sysexit_cmd,
|
||||
|
32
gdb/target.c
32
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)
|
||||
{
|
||||
|
@ -715,6 +715,9 @@ struct target_ops
|
||||
char *(*to_fileio_readlink) (const char *filename, int *target_errno);
|
||||
|
||||
|
||||
/* Implement the "info proc" command. */
|
||||
void (*to_info_proc) (struct target_ops *, char *, enum info_proc_what);
|
||||
|
||||
/* Tracepoint-related operations. */
|
||||
|
||||
/* Prepare the target for a tracing run. */
|
||||
@ -942,6 +945,10 @@ extern void target_store_registers (struct regcache *regcache, int regs);
|
||||
|
||||
struct address_space *target_thread_address_space (ptid_t);
|
||||
|
||||
/* Implement the "info proc" command. */
|
||||
|
||||
void target_info_proc (char *, enum info_proc_what);
|
||||
|
||||
/* Returns true if this target can debug multiple processes
|
||||
simultaneously. */
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2012-01-20 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
|
||||
* 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.
|
||||
|
||||
2012-01-19 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* .gdbinit: Remove.
|
||||
|
@ -16,11 +16,6 @@
|
||||
# This file was written by Michael Snyder (msnyder@redhat.com)
|
||||
# This is a test for the gdb command "info proc"
|
||||
|
||||
if { [is_remote target] } then {
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
set ws "\[ \t\]+"
|
||||
|
||||
set testfile "break"
|
||||
@ -50,17 +45,7 @@ gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
# Does this gdb support info proc?
|
||||
gdb_test_multiple "help info proc" "help info proc" {
|
||||
-re "Undefined info command: .proc.. Try .help info.*$gdb_prompt $" {
|
||||
# info proc command not supported -- nothing to test here.
|
||||
unsupported "gdb does not support info proc on this target"
|
||||
return -1;
|
||||
}
|
||||
-re "Show /proc process information about .*$gdb_prompt $" {
|
||||
pass "help info proc"
|
||||
}
|
||||
}
|
||||
gdb_test "help info proc" "Show /proc process information about .*"
|
||||
|
||||
gdb_test "info proc" "No current process.*" "info proc without a process"
|
||||
|
||||
@ -69,7 +54,17 @@ if { ! [ runto_main ] } then {
|
||||
return -1
|
||||
}
|
||||
|
||||
gdb_test "info proc" "process ${decimal}.*" "info proc with process"
|
||||
# Does this gdb support info proc?
|
||||
gdb_test_multiple "info proc" "info proc" {
|
||||
-re "Not supported on this target.*$gdb_prompt $" {
|
||||
# info proc command not supported -- nothing to test here.
|
||||
unsupported "gdb does not support info proc on this target"
|
||||
return -1;
|
||||
}
|
||||
-re "process ${decimal}.*$gdb_prompt $" {
|
||||
pass "info proc with process"
|
||||
}
|
||||
}
|
||||
|
||||
gdb_test "info proc mapping" \
|
||||
".*Mapped address spaces:.*${hex}${ws}${hex}${ws}${hex}${ws}${hex}.*" \
|
||||
|
Loading…
Reference in New Issue
Block a user