This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix invoking "[kill|detach] inferiors" on inferiors that are not running


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]