1# Copyright 2003, 2004, 2007, 2008, 2009, 2010, 2011 2# Free Software Foundation, Inc. 3 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 3 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program. If not, see <http://www.gnu.org/licenses/>. 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 22if $tracelevel { 23 strace $tracelevel 24} 25 26# Test i386 unwinder. 27 28 29if {(![istarget "x86_64-*-*"] && ![istarget "i?86-*-*"]) || ![is_ilp32_target] } then { 30 verbose "Skipping i386 unwinder tests." 31 return 32} 33 34set testfile "i386-unwind" 35set srcfile ${testfile}.c 36set binfile ${objdir}/${subdir}/${testfile} 37 38# some targets have leading underscores on assembly symbols. 39# TODO: detect this automatically 40set additional_flags "" 41if { [istarget "*-*-cygwin*"] || [istarget "*-*-mingw*"] } then { 42 set additional_flags "additional_flags=-DSYMBOL_PREFIX=\"_\"" 43} 44 45if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } { 46 untested i386-unwind.exp 47 return -1 48} 49 50gdb_exit 51gdb_start 52gdb_reinitialize_dir $srcdir/$subdir 53gdb_load ${binfile} 54 55# Testcase for backtrace/1435. 56 57# We use gdb_run_cmd so this stands a chance to work for remote 58# targets too. 59gdb_run_cmd 60 61gdb_expect { 62 -re "Program received signal SIGTRAP.*$gdb_prompt $" { 63 pass "run past gdb1435" 64 } 65 -re ".*$gdb_prompt $" { 66 fail "run past gdb1435" 67 } 68 timeout { 69 fail "run past gdb1435 (timeout)" 70 } 71} 72 73gdb_test "backtrace 10" \ 74 "#1\[ \t]*$hex in gdb1435.*\r\n#2\[ \t\]*$hex in main.*" \ 75 "backtrace past gdb1435" 76