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".
This commit is contained in:
parent
75b8939e07
commit
b8db102de3
@ -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>:
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user