summaryrefslogtreecommitdiff
path: root/gdb/linux-fork.c
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2006-04-27 23:03:42 +0000
committerMichael Snyder <msnyder@specifix.com>2006-04-27 23:03:42 +0000
commiteaa32caa9499b4940ddca575b010171716673d4e (patch)
treec599d5edbf68ad9b8c5bc2ea9327beb9d5a57818 /gdb/linux-fork.c
parent3a4b50ecd3ed79ecf75b1c9cef9c6a35a219af68 (diff)
downloadgdb-eaa32caa9499b4940ddca575b010171716673d4e.tar.gz
2006-04-26 Michael Snyder <msnyder@redhat.com>
* linux-fork.c (_initialize_linux_fork): Rename "delete-fork" command to "delete fork" (no hyphen), compatible with other "delete" commands. (info_forks_command): Accept a fork ID argument, for info on a single fork. Report if no matching forks. 2006-04-26 Michael Snyder <msnyder@redhat.com> * gdb.base/multi-forks.exp: Modify patterns for "run to exit", which may have to consume output from other forks. Add tests to make sure that "delete fork" succeeded. 2006-04-27 Michael Snyder <msnyder@redhat.com> * gdb.texinfo (delete-fork): Command renamed to "delete fork".
Diffstat (limited to 'gdb/linux-fork.c')
-rw-r--r--gdb/linux-fork.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index bb4468268c2..e96275b8d57 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -448,9 +448,18 @@ info_forks_command (char *arg, int from_tty)
struct fork_info *fp;
int cur_line;
ULONGEST pc;
+ int requested = -1;
+ struct fork_info *printed = NULL;
+
+ if (arg && *arg)
+ requested = (int) parse_and_eval_long (arg);
for (fp = fork_list; fp; fp = fp->next)
{
+ if (requested > 0 && fp->num != requested)
+ continue;
+
+ printed = fp;
if (ptid_equal (fp->ptid, inferior_ptid))
{
printf_filtered ("* ");
@@ -490,6 +499,13 @@ info_forks_command (char *arg, int from_tty)
putchar_filtered ('\n');
}
+ if (printed == NULL)
+ {
+ if (requested > 0)
+ printf_filtered (_("No fork number %d.\n"), requested);
+ else
+ printf_filtered (_("No forks.\n"));
+ }
}
/* Save/restore mode variable 'detach_fork':
@@ -670,11 +686,12 @@ Fork a duplicate process (experimental)."));
restart <n>: restore program context from a checkpoint.\n\
Argument 'n' is checkpoint ID, as displayed by 'info checkpoints'."));
- /* Delete-checkpoint command: kill the process and remove it from
+ /* Delete checkpoint command: kill the process and remove it from
fork list. */
- add_com ("delete-checkpoint", class_obscure, delete_fork_command, _("\
-Delete a fork/checkpoint (experimental)."));
+ add_cmd ("checkpoint", class_obscure, delete_fork_command, _("\
+Delete a fork/checkpoint (experimental)."),
+ &deletelist);
/* Detach-checkpoint command: release the process to run independantly,
and remove it from the fork list. */
@@ -691,7 +708,7 @@ Detach from a fork/checkpoint (experimental)."));
/* Command aliases (let "fork" and "checkpoint" be used
interchangeably). */
- add_com_alias ("delete-fork", "delete-checkpoint", class_obscure, 1);
+ add_alias_cmd ("fork", "checkpoint", class_obscure, 1, &deletelist);
add_com_alias ("detach-fork", "detach-checkpoint", class_obscure, 1);
add_info_alias ("forks", "checkpoints", 0);