# Copyright 2003, 2007, 2008 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 . # Test for PR gdb/1056. # 2003-10-18 Michael Chastain if $tracelevel then { strace $tracelevel } # test SIGFPE (such as division by 0) inside gdb itself set prms_id 0 set bug_id 0 gdb_start # When SIGFPE happens, the operating system may restart the # offending instruction after the signal handler returns, # rather than proceeding to the next instruction. This happens # on i686-pc-linux-gnu with a linux kernel. If gdb has a naive # signal handler that just returns, then it will restart the # broken instruction and gdb gets an endless stream of SIGFPE's # and makes no progress. # # On a broken gdb this test will just time out. gdb_test_multiple "print 1/0" "" { -re ".*$gdb_prompt $" { pass "print 1/0" } timeout { kfail "gdb/1056" "print 1/0" } } gdb_test "print 1U/0" ".*Division by zero.*" "Test unsigned division by zero"