1# Copyright (C) 1997, 1998 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 2 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program; if not, write to the Free Software 15# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 16 17# Please email any bugs, comments, and/or additions to this file to: 18# bug-gdb@prep.ai.mit.edu 19 20if $tracelevel then { 21 strace $tracelevel 22 } 23 24set prms_id 0 25set bug_id 0 26 27if { [skip_hp_tests] } then { continue } 28 29if { ![istarget "hppa*-*-hpux11.*"] } { 30 verbose "HPUX h/w watch test ignored for non-hppa or pre-HP/UX-10.30 targets." 31 return 0 32} 33 34set testfile "hwwatchbus" 35set srcfile ${testfile}.c 36set binfile ${objdir}/${subdir}/${testfile} 37 38# build the first test case 39if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 40 gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." 41} 42 43if [get_compiler_info ${binfile}] { 44 return -1 45} 46 47# Start with a fresh gdb 48 49gdb_exit 50remote_exec build "rm -f ${binfile}.bak" 51gdb_start 52gdb_reinitialize_dir $srcdir/$subdir 53gdb_load ${binfile} 54 55 56# We ought to be able to set a hardware watchpoint, step, and 57# get a SIGBUS or SIGSEGV signal reported. 58# 59if ![runto_main] then { 60 fail "can't run to main" 61 return 0 62} 63 64send_gdb "watch bogus_p\n" 65gdb_expect { 66 -re "Hardware watchpoint \[0-9\]*: bogus_p.*$gdb_prompt $"\ 67 {pass "set h/w watchpoint"} 68 -re "$gdb_prompt $"\ 69 {fail "set h/w watchpoint"} 70 timeout {fail "(timeout) set h/w watchpoint"} 71} 72 73send_gdb "step\n" 74gdb_expect { 75 -re "Program received signal (SIGBUS|SIGSEGV), (Bus error|Segmentation fault).* in main .*${srcfile}:8.*$gdb_prompt $"\ 76 {pass "see real signal when h/w watchpoint set"} 77 -re "$gdb_prompt $"\ 78 {fail "see real signal when h/w watchpoint set"} 79 timeout {fail "(timeout) see real signal when h/w watchpoint set"} 80} 81 82remote_exec build "mv ${binfile} ${binfile}.bak" 83return 0 84