URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.2/] [gdb/] [testsuite/] [gdb.reverse/] [sigall-reverse.exp] - Rev 330
Compare with Previous | Blame | View Log
# Copyright 2009, 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 sigall-reverse.exp because of nosignals."return}if ![target_info exists gdb,can_reverse] {return}if $tracelevel then {strace $tracelevel}gdb_exitgdb_startgdb_reinitialize_dir $srcdir/$subdirset testfile sigall-reverseset srcfile ${testfile}.cset binfile ${objdir}/${subdir}/${testfile}if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {untested sigall.expreturn -1}# Make the first signal SIGABRT because it is always supported.set sig_supported 1set thissig "ABRT"proc test_one_sig {nextsig} {global sig_supportedglobal gdb_promptglobal thissigset this_sig_supported $sig_supportedgdb_test "handle SIG$thissig stop print" \"SIG$thissig\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"gdb_test "b handle_$thissig" "Breakpoint \[0-9\]+ .*"gdb_test "b gen_$nextsig" "Breakpoint \[0-9\]+ .*"set need_another_continue 1set missed_handler 0if $this_sig_supported then {if { $thissig == "IO" } {setup_xfail "i*86-pc-linuxoldld-gnu" "i*86-pc-linuxaout-gnu"}set testmsg "get signal $thissig"gdb_test_multiple "continue" $testmsg {-re "Program received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {fail "$testmsg (wrong location)"}-re "Program received signal SIG$thissig.*$gdb_prompt $" {pass $testmsg}-re "Breakpoint.* handle_$thissig.*$gdb_prompt $" {xfail $testmsgset need_another_continue 0}}}if [ istarget "alpha-dec-osf3*" ] then {# OSF/1-3.x is unable to continue with a job control stop signal.# The inferior remains stopped without an event of interest# and GDB waits forever for the inferior to stop on an event# of interest. Work around the kernel bug.if { $thissig == "TSTP" || $thissig == "TTIN" || $thissig == "TTOU" } {setup_xfail "alpha-dec-osf3*"fail "cannot continue from signal $thissig"set need_another_continue 0}}if $need_another_continue then {if { $thissig == "URG" } {setup_xfail "i*86-pc-linuxoldld-gnu" "i*86-pc-linuxaout-gnu"}# Either Lynx or GDB screws up on SIGPRIOif { $thissig == "PRIO" } {setup_xfail "*-*-*lynx*"}set testmsg "send signal $thissig"gdb_test_multiple "continue" $testmsg {-re "Breakpoint.*handle_$thissig.*$gdb_prompt $" {pass $testmsg}-re "Breakpoint.*gen_$nextsig.*kill.*$gdb_prompt $" {fail "missed breakpoint at handle_$thissig"set missed_handler 1}}}if { $missed_handler == "0" } then {set testmsg "advance to $nextsig"gdb_test_multiple "signal 0" $testmsg {-re "Breakpoint.*gen_$nextsig.*kill.*$gdb_prompt $" {pass $testmsgset sig_supported 1}-re "Breakpoint.*gen_$nextsig.*handle.*$gdb_prompt $" {pass $testmsgset sig_supported 0}}}set thissig $nextsig}proc test_one_sig_reverse {prevsig} {global gdb_promptgdb_test "reverse-continue" "Breakpoint .* handle_$prevsig.*" \"reverse to handler of $prevsig"set saw_signal 0set testmsg "reverse to gen_$prevsig"gdb_test_multiple "reverse-continue" $testmsg {-re "Breakpoint.*handle_.*$gdb_prompt " {pass "$testmsg (un-handled)"}-re "Program received signal SIG$prevsig.*$gdb_prompt " {pass "reverse to signal event, $prevsig"set nested_testmsg "reverse signal delivered"gdb_test_multiple "frame" $nested_testmsg {-re ".*handle_$prevsig.*$gdb_prompt " {fail "$nested_testmsg (wrong location)"}-re ".*$gdb_prompt " {pass $nested_testmsg}}set saw_signal 1send_gdb "reverse-continue\n"exp_continue}-re "Breakpoint.*kill.*$gdb_prompt " {if { $saw_signal } then {pass "$testmsg (handled)"} else {xfail "$testmsg (handled)"}}-re "No more reverse-execution history.*kill.*$gdb_prompt " {if { $saw_signal } then {pass "$testmsg (handled)"} else {xfail "$testmsg (handled)"}}}}gdb_load $binfilerunto gen_ABRTif [target_info exists gdb,use_precord] {# Activate process record/replaygdb_test_no_output "record" "Turn on process record"}test_one_sig HUPtest_one_sig QUITtest_one_sig ILLtest_one_sig EMTtest_one_sig FPEtest_one_sig BUStest_one_sig SEGVtest_one_sig SYStest_one_sig PIPEtest_one_sig ALRMtest_one_sig URGtest_one_sig TSTPtest_one_sig CONTtest_one_sig CHLDtest_one_sig TTINtest_one_sig TTOUtest_one_sig IOtest_one_sig XCPUtest_one_sig XFSZtest_one_sig VTALRMtest_one_sig PROFtest_one_sig WINCHtest_one_sig LOSTtest_one_sig USR1test_one_sig USR2test_one_sig PWRtest_one_sig POLLtest_one_sig WINDtest_one_sig PHONEtest_one_sig WAITINGtest_one_sig LWPtest_one_sig DANGERtest_one_sig GRANTtest_one_sig RETRACTtest_one_sig MSGtest_one_sig SOUNDtest_one_sig SAKtest_one_sig PRIOtest_one_sig 33test_one_sig 34test_one_sig 35test_one_sig 36test_one_sig 37test_one_sig 38test_one_sig 39test_one_sig 40test_one_sig 41test_one_sig 42test_one_sig 43test_one_sig 44test_one_sig 45test_one_sig 46test_one_sig 47test_one_sig 48test_one_sig 49test_one_sig 50test_one_sig 51test_one_sig 52test_one_sig 53test_one_sig 54test_one_sig 55test_one_sig 56test_one_sig 57test_one_sig 58test_one_sig 59test_one_sig 60test_one_sig 61test_one_sig 62test_one_sig 63test_one_sig TERM# The last signal (SIGTERM) gets handled slightly differently because# we are not setting up for another test.gdb_test "handle SIGTERM stop print" \"SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"gdb_test "continue" \"Continuing.*Program received signal SIGTERM.*" \"get signal TERM"gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"gdb_test "continue" "\[process \[0-9\]+ .*" "continue to sigal exit" \"The next instruction is syscall exit_group.* program...y. or n. " \"yes"test_one_sig_reverse TERMtest_one_sig_reverse 63test_one_sig_reverse 62test_one_sig_reverse 61test_one_sig_reverse 60test_one_sig_reverse 59test_one_sig_reverse 58test_one_sig_reverse 57test_one_sig_reverse 56test_one_sig_reverse 55test_one_sig_reverse 54test_one_sig_reverse 53test_one_sig_reverse 52test_one_sig_reverse 51test_one_sig_reverse 50test_one_sig_reverse 49test_one_sig_reverse 48test_one_sig_reverse 47test_one_sig_reverse 46test_one_sig_reverse 45test_one_sig_reverse 44test_one_sig_reverse 43test_one_sig_reverse 42test_one_sig_reverse 41test_one_sig_reverse 40test_one_sig_reverse 39test_one_sig_reverse 38test_one_sig_reverse 37test_one_sig_reverse 36test_one_sig_reverse 35test_one_sig_reverse 34test_one_sig_reverse 33test_one_sig_reverse PRIOtest_one_sig_reverse SAKtest_one_sig_reverse SOUNDtest_one_sig_reverse MSGtest_one_sig_reverse RETRACTtest_one_sig_reverse GRANTtest_one_sig_reverse DANGERtest_one_sig_reverse LWPtest_one_sig_reverse WAITINGtest_one_sig_reverse PHONEtest_one_sig_reverse WINDtest_one_sig_reverse POLLtest_one_sig_reverse PWRtest_one_sig_reverse USR2test_one_sig_reverse USR1test_one_sig_reverse LOSTtest_one_sig_reverse WINCHtest_one_sig_reverse PROFtest_one_sig_reverse VTALRMtest_one_sig_reverse XFSZtest_one_sig_reverse XCPUtest_one_sig_reverse IOtest_one_sig_reverse TTOUtest_one_sig_reverse TTINtest_one_sig_reverse CHLDtest_one_sig_reverse CONTtest_one_sig_reverse TSTPtest_one_sig_reverse URGtest_one_sig_reverse ALRMtest_one_sig_reverse PIPEtest_one_sig_reverse SYStest_one_sig_reverse SEGVtest_one_sig_reverse BUStest_one_sig_reverse FPEtest_one_sig_reverse EMTtest_one_sig_reverse ILLtest_one_sig_reverse QUITtest_one_sig_reverse HUPtest_one_sig_reverse ABRT# Make the first signal SIGABRT because it is always supported.set sig_supported 1set thissig "ABRT"test_one_sig HUPtest_one_sig QUITtest_one_sig ILLtest_one_sig EMTtest_one_sig FPEtest_one_sig BUStest_one_sig SEGVtest_one_sig SYStest_one_sig PIPEtest_one_sig ALRMtest_one_sig URGtest_one_sig TSTPtest_one_sig CONTtest_one_sig CHLDtest_one_sig TTINtest_one_sig TTOUtest_one_sig IOtest_one_sig XCPUtest_one_sig XFSZtest_one_sig VTALRMtest_one_sig PROFtest_one_sig WINCHtest_one_sig LOSTtest_one_sig USR1test_one_sig USR2test_one_sig PWRtest_one_sig POLLtest_one_sig WINDtest_one_sig PHONEtest_one_sig WAITINGtest_one_sig LWPtest_one_sig DANGERtest_one_sig GRANTtest_one_sig RETRACTtest_one_sig MSGtest_one_sig SOUNDtest_one_sig SAKtest_one_sig PRIOtest_one_sig 33test_one_sig 34test_one_sig 35test_one_sig 36test_one_sig 37test_one_sig 38test_one_sig 39test_one_sig 40test_one_sig 41test_one_sig 42test_one_sig 43test_one_sig 44test_one_sig 45test_one_sig 46test_one_sig 47test_one_sig 48test_one_sig 49test_one_sig 50test_one_sig 51test_one_sig 52test_one_sig 53test_one_sig 54test_one_sig 55test_one_sig 56test_one_sig 57test_one_sig 58test_one_sig 59test_one_sig 60test_one_sig 61test_one_sig 62test_one_sig 63test_one_sig TERM
