old-cross-binutils/gdb/testsuite/gdb.base/siginfo-infcall.exp
Jan Kratochvil 1736ad1102 gdb/
Fix lost siginfo_t for inferior calls.
	* infrun.c
	(struct inferior_thread_state) <siginfo_gdbarch, siginfo_data>: New.
	(save_inferior_thread_state): New variables regcache, gdbarch and
	siginfo_data.  Initialize SIGINFO_DATA if gdbarch_get_siginfo_type_p.
	Move INF_STATE allocation later, pre-clear it.  Initialize REGISTERS
	using REGCACHE.
	(restore_inferior_thread_state): New variables regcache and gdbarch.
	Restore SIGINFO_DATA for matching GDBARCH.  Restore REGISTERS using
	REGCACHE.  Free also SIGINFO_DATA.

gdb/testsuite/
	Fix lost siginfo_t for inferior calls.
	* gdb.base/siginfo-infcall.exp: New file.
	* gdb.base/siginfo-infcall.c: New file.
2010-09-24 18:35:28 +00:00

47 lines
1.4 KiB
Text

# Copyright 2010 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/>.
if [target_info exists gdb,nosignals] {
verbose "Skipping siginfo-infcall.exp because of nosignals."
continue
}
set testfile siginfo-infcall
set srcfile ${testfile}.c
set executable ${testfile}
if { [prepare_for_testing ${testfile}.exp $executable] } {
return -1
}
if ![runto_main] {
return -1
}
gdb_breakpoint "pass"
gdb_breakpoint "fail"
gdb_test "continue" "Program received signal SIGUSR1, .*" "continue to SIGUSR1"
gdb_test "p callme ()" " = 42"
set test "continue to the handler"
gdb_test_multiple "continue" $test {
-re "Breakpoint \[0-9\]+,\[^\r\n\]* pass .*\r\n$gdb_prompt $" {
pass $test
}
-re "Breakpoint \[0-9\]+,\[^\r\n\]* fail .*\r\n$gdb_prompt $" {
fail $test
}
}