binutils-gdb/gdb/testsuite/gdb.threads/reconnect-signal.exp
Joel Brobecker 61baf725ec update copyright year range in GDB files
This applies the second part of GDB's End of Year Procedure, which
updates the copyright year range in all of GDB's files.

gdb/ChangeLog:

        Update copyright year range in all GDB files.
2017-01-01 10:52:34 +04:00

84 lines
2.4 KiB
Text

# Copyright 2013-2017 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. */
# Test that disconnecting and reconnecting doesn't lose signals.
set gdbserver_reconnect_p 1
if { [info proc gdb_reconnect] == "" } {
return 0
}
standard_testfile
set executable ${testfile}
if { [gdb_compile_pthreads \
"${srcdir}/${subdir}/${srcfile}" \
"${binfile}" \
executable {debug}] != "" } {
untested "failed to compile"
return -1
}
clean_restart $executable
if ![runto_main] then {
fail "can't run to main"
return 0
}
gdb_test "continue" "signal SIGUSR1.*" "continue to signal"
# Check that it's thread 2 that is selected.
gdb_test "info threads" "\\* 2 .*" "thread 2 is selected"
set msg "save \$pc after signal"
set saved_pc ""
gdb_test_multiple "print/x \$pc" $msg {
-re "\\\$$decimal = (\[^\r\n\]*)\r\n$gdb_prompt $" {
set saved_pc $expect_out(1,string)
pass $msg
}
}
# Switch to the other thread.
gdb_test "thread 1" "thread 1.*" "switch to thread 1"
# Force GDB to select thread 1 on the remote end as well.
gdb_test "print/x \$pc"
gdb_test "disconnect" "Ending remote debugging\\." "disconnect after signal"
set test "reconnect after signal"
set res [gdb_reconnect]
if { [lindex $res 0] == 0 } {
pass $test
} else {
fail $test
return 0
}
# Check that thread 2 is re-selected.
gdb_test "info threads" "\\* 2 .*" "thread 2 is selected on reconnect"
# Check that the program is still alive, and stopped in the same spot.
gdb_test "print/x \$pc" "\\\$$decimal = $saved_pc" "check \$pc after signal"
# Check that we didn't lose the signal.
gdb_test "info program" "stopped with signal SIGUSR1,.*"
# Nor does the program.
gdb_test "b handle" "Breakpoint .*" "set breakpoint in signal handler"
gdb_test "continue" "handle.*" "continue to signal handler"