1# Copyright 2003 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@gnu.org 19 20# This file is part of the gdb testsuite. 21 22# Tests for PR:1291. Ensure that backtrace works properly for stack 23# frames greater than 256 bytes. 24 25if $tracelevel { 26 strace $tracelevel 27} 28 29# Test SH backtraces with >256 byte frame stack. (PR:1291) 30 31set prms_id 0 32set bug_id 0 33 34if ![istarget "sh-*-*"] then { 35 verbose "Skipping SH backtrace tests." 36 return 37} 38 39set testfile "gdb1291" 40set srcfile ${testfile}.s 41set binfile ${objdir}/${subdir}/${testfile} 42if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ""] != "" } { 43 gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." 44} 45 46gdb_exit 47gdb_start 48gdb_reinitialize_dir $srcdir/$subdir 49gdb_load ${binfile} 50 51# 52# Run to `main' where we begin our tests. 53# 54 55if ![runto_main] then { 56 gdb_suppress_tests 57} 58 59gdb_test "b sub1" "Breakpoint 2.*" "set breakpoint" 60gdb_test "c" "Breakpoint 2.* sub1 .*" "get to sub1" 61 62send_gdb "bt\n" 63gdb_expect { 64 -re "#0.* sub1 .*\r\n#1\[ \t\]*$hex in main \\(\\).*\r\n$gdb_prompt $" { 65 pass "backtrace with local variable less than or equal to 256 bytes" 66 } 67 -re ".*$gdb_prompt $" { 68 fail "backtrace with local variable less than or equal to 256 bytes" 69 } 70 timeout { 71 fail "backtrace with local variable less than or equal to 256 bytes (timeout)" 72 } 73} 74 75gdb_test "b sub2" "Breakpoint 3.*" "set breakpoint" 76gdb_test "c" "Breakpoint 3.* sub2 .*" "get to sub2" 77 78send_gdb "bt\n" 79gdb_expect { 80 -re "#0.* sub2 .*\r\n#1\[ \t\]*$hex in main \\(\\).*\r\n$gdb_prompt $" { 81 pass "backtrace with local variable larger than 256 bytes" 82 } 83 -re "#0.* sub2 .*\r\n#1 0x00000000 in \\?\\? \\(\\).*\r\n$gdb_prompt $" { 84 kfail "gdb/1291" "backtrace with local variable larger than 256 bytes" 85 } 86 -re ".*$gdb_prompt $" { 87 fail "backtrace with local variable larger than 256 bytes" 88 } 89 timeout { 90 fail "backtrace with local variable larger than 256 bytes (timeout)" 91 } 92} 93