1# Copyright 2001, 2003, 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# use this to debug: 18# 19#log_user 1 20 21# step-line.exp -- Expect script to test stepping in files with 22# #line directives. 23 24if $tracelevel then { 25 strace $tracelevel 26} 27 28set testfile step-line 29set srcfile ${testfile}.c 30set linefile ${testfile}.inp 31set binfile ${objdir}/${subdir}/${testfile} 32 33remote_exec build "rm -f ${binfile}" 34if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 35 untested step-line.exp 36 return -1 37} 38 39gdb_exit 40gdb_start 41gdb_reinitialize_dir $srcdir/$subdir 42gdb_load ${binfile} 43 44if ![runto_main] then { 45 fail "Can't run to main" 46 return 0 47} 48 49set remote_linefile [remote_download host ${srcdir}/${subdir}/${linefile}] 50 51gdb_test "break f1" ".*Breakpoint 2 at .* file .*step-line.c.*" "break f1" 52gdb_test "continue" \ 53 "Continuing.*Breakpoint 2, f1 \\(i=4\\).*dummy \\(1, i\\);" \ 54 "continue to f1" 55gdb_test "next" \ 56 ".*i = f2 \\(i\\);.*" \ 57 "next over dummy 1" 58gdb_test "next" \ 59 ".*dummy \\(2, i\\);.*" \ 60 "next to dummy 2" 61gdb_test "next" \ 62 ".*i = f2 \\(i\\);.*" \ 63 "next over dummy 2" 64gdb_test "step" \ 65 ".*f2 \\(i=4\\).*dummy \\(4, i\\);.*" \ 66 "step into f2" 67gdb_test "next" \ 68 ".*j = i;.*" \ 69 "next over dummy 4" 70gdb_test "next" \ 71 ".*dummy \\(5, i\\);.*" \ 72 "next to dummy 5" 73gdb_test "next" \ 74 ".*dummy \\(6, j\\);.*" \ 75 "next to dummy 6" 76gdb_test "next" \ 77 ".*j = SUCC \\(j\\);.*" \ 78 "next over dummy 6" 79gdb_test "next" \ 80 ".*dummy \\(7, i\\);.*" \ 81 "next to dummy 7" 82gdb_test "next" \ 83 ".*dummy \\(8, j\\);.*" \ 84 "next to dummy 8" 85gdb_test "next" \ 86 ".*j = j - i;.*" \ 87 "next over dummy 8" 88gdb_test "next" \ 89 ".*dummy \\(9, i\\);.*" \ 90 "next to dummy 9" 91gdb_test "next" \ 92 ".*dummy \\(10, j\\);.*" \ 93 "next to dummy 10" 94gdb_test "next" \ 95 ".*RETURN \\(j\\);.*" \ 96 "next over dummy 10" 97 98remote_file host delete ${remote_linefile} 99 100return 0 101