2006-04-26 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Thu, 27 Apr 2006 23:03:42 +0000 (23:03 +0000)
committerMichael Snyder <msnyder@vmware.com>
Thu, 27 Apr 2006 23:03:42 +0000 (23:03 +0000)
* 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".

gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/linux-fork.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/multi-forks.exp

index be4990c335db33d3d6382f7607a78c58944d72c8..a92b514310b08bb116d57150400cee9aa4cc1921 100644 (file)
@@ -1,3 +1,11 @@
+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-25  Mark Kettenis  <kettenis@gnu.org>
 
        From Masaki MURANAKA <monaka@monami-software.com>:
index 60fe4d05277fec11172e64a0103fb3acdf49788e..dc5f4f1374cabac2fdb5c10262efa9a2fc36e324 100644 (file)
@@ -1,3 +1,7 @@
+2006-04-27  Michael Snyder  <msnyder@redhat.com>
+
+       * gdb.texinfo (delete-fork): Command renamed to "delete fork".
+
 2006-04-22  Andrew Cagney  <cagney@redhat.com>
 
        * gdb.texinfo (Contributors): Credit frame unwinder contributors.
index a7d182ba84328c494816442e619490149d23afd4..3230dcb40a829d5056e882cbfb2066c9d3c0842a 100644 (file)
@@ -2576,7 +2576,7 @@ as shown in the first field of the @samp{info forks} display.
 To quit debugging one of the forked processes, you can either detach
 from it by using the @w{@code{detach-fork}} command (allowing it to
 run independently), or delete (and kill) it using the
-@w{@code{delete-fork}} command.
+@w{@code{delete fork}} command.
 
 @table @code
 @kindex detach-fork @var{fork-id}
@@ -2585,8 +2585,8 @@ Detach from the process identified by @value{GDBN} fork number
 @var{fork-id}, and remove it from the fork list.  The process will be
 allowed to run independently.
 
-@kindex delete-fork @var{fork-id}
-@item delete-fork @var{fork-id}
+@kindex delete fork @var{fork-id}
+@item delete fork @var{fork-id}
 Kill the process identified by @value{GDBN} fork number @var{fork-id},
 and remove it from the fork list.
 
@@ -2675,8 +2675,8 @@ are not affected by restoring a checkpoint.  In general, a checkpoint
 only restores things that reside in the program being debugged, not in
 the debugger.
 
-@kindex delete-checkpoint @var{checkpoint-id}
-@item delete-checkpoint @var{checkpoint-id}
+@kindex delete checkpoint @var{checkpoint-id}
+@item delete checkpoint @var{checkpoint-id}
 Delete the previously-saved checkpoint identified by @var{checkpoint-id}.
 
 @end table
index bb4468268c29dba615d1aa2d5c9aa7ad974c1d36..e96275b8d577ef3252010a1b5db45b4dfb41704b 100644 (file)
@@ -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);
 
index 83cef557de8cae788410b1a4a6b22f90c5b4db94..d673d257295e45fd49c02f84858092749accf732 100644 (file)
@@ -1,3 +1,9 @@
+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-20  Michael Snyder  <msnyder@redhat.com>
 
        * 2006-03-22  Jim Blandy  <jimb@redhat.com>
index 82fdc507eaf663a0458839c6c099c187a3866517..5a706d71252bcd545236582c2deda5f5d95bfd0c 100644 (file)
@@ -67,7 +67,7 @@ gdb_test "set follow child" "" ""
 
 send_gdb "continue\n"
 gdb_expect {
-    -re ".*Break.* main .*$gdb_prompt $" {}
+    -re ".*Break.* main .*$gdb_prompt.*$" {}
     -re ".*$gdb_prompt $" {fail "run to exit 1"}
     default {fail "run to exit 1 (timeout)"}
 }
@@ -84,7 +84,7 @@ gdb_test "set follow parent" "" ""
 
 send_gdb "continue\n"
 gdb_expect {
-    -re ".*Break.* main .*$gdb_prompt $" {}
+    -re ".*Break.* main .*$gdb_prompt.*$" {}
     -re ".*$gdb_prompt $" {fail "run to exit 2"}
     default {fail "run to exit 2 (timeout)"}
 }
@@ -136,22 +136,31 @@ gdb_test "detach-fork 3" "Detached .*" "Detach 3"
 gdb_test "detach-fork 4" "Detached .*" "Detach 4"
 
 # 
-# Test delete-fork
+# Test delete fork
 # 
 
-gdb_test "delete-fork 5" "" "Delete 5"
-gdb_test "delete-fork 6" "" "Delete 6"
-gdb_test "delete-fork 7" "" "Delete 7"
-gdb_test "delete-fork 8" "" "Delete 8"
-gdb_test "delete-fork 9" "" "Delete 9"
-gdb_test "delete-fork 10" "" "Delete 10"
-gdb_test "delete-fork 11" "" "Delete 11"
-gdb_test "delete-fork 12" "" "Delete 12"
-gdb_test "delete-fork 13" "" "Delete 13"
-gdb_test "delete-fork 14" "" "Delete 14"
-gdb_test "delete-fork 15" "" "Delete 15"
-
-
+gdb_test "delete fork 5" "" "Delete 5"
+gdb_test "info fork 5"   "No fork number 5." "Did delete 5"
+gdb_test "delete fork 6" "" "Delete 6"
+gdb_test "info fork 6"   "No fork number 6." "Did delete 6"
+gdb_test "delete fork 7" "" "Delete 7"
+gdb_test "info fork 7"   "No fork number 7." "Did delete 7"
+gdb_test "delete fork 8" "" "Delete 8"
+gdb_test "info fork 8"   "No fork number 8." "Did delete 8"
+gdb_test "delete fork 9" "" "Delete 9"
+gdb_test "info fork 9"   "No fork number 9." "Did delete 9"
+gdb_test "delete fork 10" "" "Delete 10"
+gdb_test "info fork 10"   "No fork number 10." "Did delete 10"
+gdb_test "delete fork 11" "" "Delete 11"
+gdb_test "info fork 11"   "No fork number 11." "Did delete 11"
+gdb_test "delete fork 12" "" "Delete 12"
+gdb_test "info fork 12"   "No fork number 12." "Did delete 12"
+gdb_test "delete fork 13" "" "Delete 13"
+gdb_test "info fork 13"   "No fork number 13." "Did delete 13"
+gdb_test "delete fork 14" "" "Delete 14"
+gdb_test "info fork 14"   "No fork number 14." "Did delete 14"
+gdb_test "delete fork 15" "" "Delete 15"
+gdb_test "info fork 15"   "No fork number 15." "Did delete 15"
 
 return 0