This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix invoking "[kill|detach] inferiors" on inferiors that are not running
- From: Pedro Alves <palves at redhat dot com>
- To: Patrick Palka <patrick at parcs dot ath dot cx>, gdb-patches at sourceware dot org
- Date: Thu, 13 Aug 2015 16:56:44 +0100
- Subject: Re: [PATCH] Fix invoking "[kill|detach] inferiors" on inferiors that are not running
- Authentication-results: sourceware.org; auth=none
- References: <1438270143-23621-1-git-send-email-patrick at parcs dot ath dot cx>
Sorry, somehow I thought I had reviewed this already.
> gdb/ChangeLog:
>
> * inferior.c (detach_inferior_command): Don't call
> any_thread_of_process when pid is 0.
> (kill_inferior_command): Likewise.
>
> gdb/testsuite/ChangeLog:
>
> * gdb.base/kill-detach-inferiors-cmd.exp: New test file.
> * gdb.base/kill-detach-inferiors-cmd.c: New test file.
> ---
OK with the adjustments mentioned below, and, if it also passes
with --target_board=native-extended-gdbserver, just to make sure
the test doesn't have native-only assumptions in expected gdb output.
> +# Test the basic operation of the "kill inferiors" and "detach inferiors" commands.
> +
Line too long.
> +if ![can_spawn_for_attach] {
> + return 0
> +}
> +
> +standard_testfile
> +set executable $testfile
> +
> +if [prepare_for_testing $testfile.exp $executable] {
> + return -1
> +}
> +
> +runto_main
> +
> +# Add another forked inferior process.
> +gdb_test "add-inferior" "Added inferior 2" "add inferior 2"
> +gdb_test "inferior 2" "Switching to inferior 2.*"
> +gdb_test "file $binfile" "Reading symbols from .*done.*" "load binary"
> +gdb_test "start" "Temporary breakpoint.*Starting program.*"
> +
> +# Add an attached inferior process.
> +set testpid [spawn_wait_for_attach $binfile]
You'll need to adjust to use spawn_id_get_pid here.
> +gdb_test "add-inferior" "Added inferior 3" "add inferior 3"
> +gdb_test "inferior 3" "Switching to inferior 3.*"
> +gdb_test "attach $testpid" "Attaching to process.*" "attach to pid"
> +
> +# Kill the first two inferiors, and detach the third.
> +gdb_test_no_output "kill inferiors 1 2"
> +gdb_test "inferior 1" "Switching to inferior 1.*"
> +gdb_test "kill" "The program is not being run.*"
> +gdb_test "detach inferiors 3" "Detaching from program.*process $testpid.*"
> +
> +# No inferiors should be running anymore.
> +gdb_test "kill inferiors 1 2 3" \
> + "ID 1 is not running.*ID 2 is not running.*ID 3 is not running.*"
> +gdb_test "detach inferiors 1 2 3" \
> + "ID 1 is not running.*ID 2 is not running.*ID 3 is not running.*"
> +
> +gdb_test "kill inferiors 10" \
> + "ID 10 not known.*"
> +
> +remote_exec host "kill $testpid"
>
Here use kill_wait_spawned_process.
Thanks,
Pedro Alves