| OLD | NEW |
| 1 # Copyright 1992, 1994-1999, 2002-2003, 2007-2012 Free Software | 1 # Copyright 1992-2013 Free Software Foundation, Inc. |
| 2 # Foundation, Inc. | |
| 3 | 2 |
| 4 # This program is free software; you can redistribute it and/or modify | 3 # 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 | 4 # 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 | 5 # the Free Software Foundation; either version 3 of the License, or |
| 7 # (at your option) any later version. | 6 # (at your option) any later version. |
| 8 # | 7 # |
| 9 # This program is distributed in the hope that it will be useful, | 8 # This program is distributed in the hope that it will be useful, |
| 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 # GNU General Public License for more details. | 11 # GNU General Public License for more details. |
| 13 # | 12 # |
| 14 # You should have received a copy of the GNU General Public License | 13 # 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/>. | 14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 16 | 15 |
| 17 # This file was written by Fred Fish. (fnf@cygnus.com) | 16 # This file was written by Fred Fish. (fnf@cygnus.com) |
| 18 | 17 |
| 19 | 18 |
| 20 set testfile "list" | 19 standard_testfile list0.c list1.c |
| 21 set binfile ${objdir}/${subdir}/${testfile} | |
| 22 | 20 |
| 23 # Need to download the header to the host. | 21 # Need to download the header to the host. |
| 24 remote_download host ${srcdir}/${subdir}/list0.h list0.h | 22 gdb_remote_download host ${srcdir}/${subdir}/list0.h |
| 25 | 23 |
| 26 | 24 if {[prepare_for_testing $testfile.exp $testfile [list $srcfile $srcfile2] \ |
| 27 if { [gdb_compile "${srcdir}/${subdir}/list0.c" "${binfile}0.o" object {debug}]
!= "" } { | 25 » {debug}]} { |
| 28 untested list.exp | 26 return -1 |
| 29 return -1 | |
| 30 } | 27 } |
| 31 | 28 |
| 32 if { [gdb_compile "${srcdir}/${subdir}/list1.c" "${binfile}1.o" object {debug}]
!= "" } { | |
| 33 untested list.exp | |
| 34 return -1 | |
| 35 } | |
| 36 | |
| 37 if { [gdb_compile "${binfile}0.o ${binfile}1.o" ${binfile} executable {debug}]
!= "" } { | |
| 38 untested list.exp | |
| 39 return -1 | |
| 40 } | |
| 41 | |
| 42 | |
| 43 | |
| 44 # Create and source the file that provides information about the compiler | 29 # Create and source the file that provides information about the compiler |
| 45 # used to compile the test case. | 30 # used to compile the test case. |
| 46 if [get_compiler_info] { | 31 if [get_compiler_info] { |
| 47 return -1; | 32 return -1 |
| 48 } | 33 } |
| 49 | 34 |
| 35 # The last line in the file. |
| 36 set last_line [gdb_get_line_number "last line" "list0.c"] |
| 37 |
| 38 # Regex matching the last line in the file. |
| 39 set last_line_re "${last_line}\[ \t\]+} /\\* last line \\*/" |
| 40 |
| 50 # | 41 # |
| 51 # Local utility proc just to set and verify listsize | 42 # Local utility proc just to set and verify listsize |
| 52 # Return 1 if success, 0 if fail. | 43 # Return 1 if success, 0 if fail. |
| 53 # | 44 # |
| 54 | 45 |
| 55 set set_listsize_count 0; | 46 set set_listsize_count 0 |
| 56 | 47 |
| 57 proc set_listsize { arg } { | 48 proc set_listsize { arg } { |
| 58 global gdb_prompt | 49 global gdb_prompt |
| 59 global set_listsize_count; | 50 global set_listsize_count |
| 60 | 51 |
| 61 incr set_listsize_count; | 52 incr set_listsize_count |
| 62 if [gdb_test "set listsize $arg" ".*" "setting listsize to $arg #$set_listsi
ze_count"] { | 53 if [gdb_test_no_output "set listsize $arg" "setting listsize to $arg #$set_l
istsize_count"] { |
| 63 » return 0; | 54 » return 0 |
| 64 } | 55 } |
| 65 if { $arg <= 0 } { | 56 if { $arg == 0 } { |
| 66 » set arg "unlimited"; | 57 » set arg "unlimited" |
| 67 } | 58 } |
| 68 | 59 |
| 69 if [gdb_test "show listsize" "Number of source lines.* is ${arg}.*" "show li
stsize $arg #$set_listsize_count"] { | 60 if [gdb_test "show listsize" "Number of source lines.* is ${arg}.*" "show li
stsize $arg #$set_listsize_count"] { |
| 70 » return 0; | 61 » return 0 |
| 71 } | 62 } |
| 72 return 1 | 63 return 1 |
| 73 } | 64 } |
| 74 | 65 |
| 75 # | 66 # |
| 76 # Test display of listsize lines around a given line number. | 67 # Test display of listsize lines around a given line number. |
| 77 # | 68 # |
| 78 | 69 |
| 79 proc test_listsize {} { | 70 proc test_listsize {} { |
| 80 global gdb_prompt | 71 global gdb_prompt |
| 81 global hp_cc_compiler | 72 global hp_cc_compiler |
| 82 global hp_aCC_compiler | 73 global hp_aCC_compiler |
| 74 global last_line_re |
| 83 | 75 |
| 84 # Show default size | 76 # Show default size |
| 85 | 77 |
| 86 gdb_test "show listsize" "Number of source lines gdb will list by default is
10.*" "show default list size" | 78 gdb_test "show listsize" "Number of source lines gdb will list by default is
10.*" "show default list size" |
| 87 | 79 |
| 88 # Show the default lines | 80 # Show the default lines |
| 89 | 81 |
| 90 gdb_test "list" "(1\[ \t\]+#include \"list0.h\".*7\[ \t\]+x = 0;\r\n.*10\[ \
t\]+foo .x\[+)\]+;)" "list default lines around main" | 82 gdb_test "list" "(1\[ \t\]+#include \"list0.h\".*7\[ \t\]+x = 0;\r\n.*10\[ \
t\]+foo .x\[+)\]+;)" "list default lines around main" |
| 91 | 83 |
| 92 # Ensure we can limit printouts to one line | 84 # Ensure we can limit printouts to one line |
| (...skipping 25 matching lines...) Expand all Loading... |
| 118 gdb_test "list 1" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list lin
e 1 with listsize 4" | 110 gdb_test "list 1" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list lin
e 1 with listsize 4" |
| 119 gdb_test "list 2" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list lin
e 2 with listsize 4" | 111 gdb_test "list 2" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list lin
e 2 with listsize 4" |
| 120 | 112 |
| 121 gdb_test "list 3" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list lin
e 3 with listsize 4" | 113 gdb_test "list 3" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list lin
e 3 with listsize 4" |
| 122 gdb_test "list 4" "2\[ \t\]+\r\n.*5\[ \t\]+int x;.*" "list line 4 with l
istsize 4" | 114 gdb_test "list 4" "2\[ \t\]+\r\n.*5\[ \t\]+int x;.*" "list line 4 with l
istsize 4" |
| 123 } | 115 } |
| 124 | 116 |
| 125 # Try a size larger than the entire file. | 117 # Try a size larger than the entire file. |
| 126 | 118 |
| 127 if [ set_listsize 100 ] then { | 119 if [ set_listsize 100 ] then { |
| 128 » gdb_test "list 1" "1\[ \t\]+#include \"list0.h\".*\r\n4\[23\]\[ \t\]+\}"
"list line 1 with listsize 100" | 120 » gdb_test "list 1" "1\[ \t\]+#include \"list0.h\".*\r\n${last_line_re}" "
list line 1 with listsize 100" |
| 129 | 121 |
| 130 » gdb_test "list 10" "1\[ \t\]+#include \"list0.h\".*\r\n4\[23\]\[ \t\]+\}
" "list line 10 with listsize 100" | 122 » gdb_test "list 10" "1\[ \t\]+#include \"list0.h\".*\r\n${last_line_re}"
"list line 10 with listsize 100" |
| 131 } | 123 } |
| 132 | 124 |
| 133 # Try listsize of 0 which suppresses printing. | 125 # Try listsize of 0 which is special, and means unlimited. |
| 134 | 126 |
| 135 set_listsize 0 | 127 set_listsize 0 |
| 136 gdb_test "list 1" "" "listsize of 0 suppresses output" | 128 gdb_test "list 1" "1\[ \t\]+#include .*\r\n${last_line_re}" "list line 1 wit
h unlimited listsize" |
| 137 | |
| 138 # Try listsize of -1 which is special, and means unlimited. | |
| 139 | |
| 140 set_listsize -1 | |
| 141 setup_xfail "*-*-*" | |
| 142 gdb_test "list 1" "1\[ \t\]+#include .*\r\n39\[ \t\]+\}" "list line 1 with u
nlimited listsize" | |
| 143 } | 129 } |
| 144 | 130 |
| 145 # | 131 # |
| 146 # Test "list filename:number" for C include file | 132 # Test "list filename:number" for C include file |
| 147 # | 133 # |
| 148 | 134 |
| 149 proc test_list_include_file {} { | 135 proc test_list_include_file {} { |
| 150 global gdb_prompt | 136 global gdb_prompt |
| 151 | 137 |
| 152 setup_xfail_format "COFF" | 138 setup_xfail_format "COFF" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 } | 177 } |
| 192 send_gdb "list list1.c:12\n" | 178 send_gdb "list list1.c:12\n" |
| 193 gdb_expect { | 179 gdb_expect { |
| 194 -re "12\[ \t\]+long_line \[(\]+.*\[)\]+;.*13\[ \t\]+\}\r\n.*$gdb_prompt
$" { | 180 -re "12\[ \t\]+long_line \[(\]+.*\[)\]+;.*13\[ \t\]+\}\r\n.*$gdb_prompt
$" { |
| 195 incr testcnt | 181 incr testcnt |
| 196 } | 182 } |
| 197 -re ".*$gdb_prompt $" { fail "list list1.c:12" ; gdb_suppress_tests } | 183 -re ".*$gdb_prompt $" { fail "list list1.c:12" ; gdb_suppress_tests } |
| 198 timeout { fail "list list1.c:12 (timeout)" ; gdb_suppress_tests } | 184 timeout { fail "list list1.c:12 (timeout)" ; gdb_suppress_tests } |
| 199 } | 185 } |
| 200 pass "list filename:number ($testcnt tests)" | 186 pass "list filename:number ($testcnt tests)" |
| 201 gdb_stop_suppressing_tests; | 187 gdb_stop_suppressing_tests |
| 202 } | 188 } |
| 203 | 189 |
| 204 # | 190 # |
| 205 # Test "list function" for C source file | 191 # Test "list function" for C source file |
| 206 # | 192 # |
| 207 | 193 |
| 208 proc test_list_function {} { | 194 proc test_list_function {} { |
| 209 global gdb_prompt | 195 global gdb_prompt |
| 210 | 196 |
| 211 # gcc appears to generate incorrect debugging information for code | 197 # gcc appears to generate incorrect debugging information for code |
| 212 # in include files, which breaks this test. | 198 # in include files, which breaks this test. |
| 213 # SunPRO cc is the second case below, it's also correct. | 199 # SunPRO cc is the second case below, it's also correct. |
| 214 gdb_test "list main" "(5\[ \t\]+int x;.*8\[ \t\]+foo \[(\]+.*\[)\]+;|1\[ \t\
]+#include .*7\[ \t\]+x = 0;)" "list function in source file 1" | 200 gdb_test "list main" "(5\[ \t\]+int x;.*8\[ \t\]+foo \[(\]+.*\[)\]+;|1\[ \t\
]+#include .*7\[ \t\]+x = 0;)" "list function in source file 1" |
| 215 | 201 |
| 216 # Ultrix gdb takes the second case below; it's also correct. | 202 # Ultrix gdb takes the second case below; it's also correct. |
| 217 # SunPRO cc is the third case. | 203 # SunPRO cc is the third case. |
| 218 gdb_test "list bar" "(4\[ \t\]+void.*\[ \t\]*long_line.*;.*bar.*9\[ \t\]*.*|
1\[ \t\]+void.*8\[ \t\]+\}|1\[ \t\]+void.*7\[ \t\]*long_line ..;|7\[ \t\]+void.*
14\[ \t\]+\})" "list function in source file 2" | 204 gdb_test "list bar" "(4\[ \t\]+void.*\[ \t\]*long_line.*;.*bar.*9\[ \t\]*.*|
1\[ \t\]+void.*8\[ \t\]+\}|1\[ \t\]+void.*7\[ \t\]*long_line ..;|7\[ \t\]+void.*
14\[ \t\]+\})" "list function in source file 2" |
| 219 | 205 |
| 220 # Test "list function" for C include file | 206 # Test "list function" for C include file |
| 221 # Ultrix gdb is the second case, still correct. | 207 # Ultrix gdb is the second case, still correct. |
| 222 # SunPRO cc is the third case. | 208 # SunPRO cc is the third case. |
| 223 gdb_test "list foo" "(3\[ \t\]+.*12\[ \t\]+bar \[(\]+.*\[)\]+;|2\[ \t\]+incl
uding file.*11\[ \t\]+bar \[(\]+.*\[)\]+;|1\[ \t\]+/. An include file.*10\[ \t\]
+bar \[(\]+.*\[)\]+;)" "list function in include file" | 209 gdb_test "list foo" "(3\[ \t\]+.*12\[ \t\]+bar \[(\]+.*\[)\]+;|2\[ \t\]+incl
uding file.*11\[ \t\]+bar \[(\]+.*\[)\]+;|1\[ \t\]+/. An include file.*10\[ \t\]
+bar \[(\]+.*\[)\]+;)" "list function in include file" |
| 224 } | 210 } |
| 225 | 211 |
| 226 proc test_list_forward {} { | 212 proc test_list_forward {} { |
| 227 global gdb_prompt | 213 global gdb_prompt |
| 214 global last_line_re |
| 228 | 215 |
| 229 set testcnt 0 | 216 set testcnt 0 |
| 230 | 217 |
| 231 send_gdb "list list0.c:10\n" | 218 send_gdb "list list0.c:10\n" |
| 232 gdb_expect { | 219 gdb_expect { |
| 233 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
incr testcnt } | 220 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
incr testcnt } |
| 234 -re ".*$gdb_prompt $" { fail "list list0.c:10" ; gdb_suppress_tests } | 221 -re ".*$gdb_prompt $" { fail "list list0.c:10" ; gdb_suppress_tests } |
| 235 timeout { fail "list list0.c:10 (timeout)" ; gdb_suppress_tests } | 222 timeout { fail "list list0.c:10 (timeout)" ; gdb_suppress_tests } |
| 236 } | 223 } |
| 237 | 224 |
| 238 send_gdb "list\n" | 225 send_gdb "list\n" |
| 239 gdb_expect { | 226 gdb_expect { |
| 240 -re "15\[ \t\]+foo \[(\]+.*\[)\]+;.*24\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } | 227 -re "15\[ \t\]+foo \[(\]+.*\[)\]+;.*24\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } |
| 241 -re ".*$gdb_prompt $" { fail "list 15-24" ; gdb_suppress_tests } | 228 -re ".*$gdb_prompt $" { fail "list 15-24" ; gdb_suppress_tests } |
| 242 timeout { fail "list 15-24 (timeout)" ; gdb_suppress_tests } | 229 timeout { fail "list 15-24 (timeout)" ; gdb_suppress_tests } |
| 243 } | 230 } |
| 244 | 231 |
| 245 send_gdb "list\n" | 232 send_gdb "list\n" |
| 246 gdb_expect { | 233 gdb_expect { |
| 247 -re "25\[ \t\]+foo \[(\]+.*\[)\]+;.*34\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } | 234 -re "25\[ \t\]+foo \[(\]+.*\[)\]+;.*34\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } |
| 248 -re ".*$gdb_prompt $" { fail "list 25-34" ; gdb_suppress_tests } | 235 -re ".*$gdb_prompt $" { fail "list 25-34" ; gdb_suppress_tests } |
| 249 timeout { fail "list 25-34 (timeout)" ; gdb_suppress_tests } | 236 timeout { fail "list 25-34 (timeout)" ; gdb_suppress_tests } |
| 250 } | 237 } |
| 251 | 238 |
| 252 send_gdb "list\n" | 239 send_gdb "list\n" |
| 253 gdb_expect { | 240 gdb_expect { |
| 254 » -re "35\[ \t\]+foo \\(.*\\);.*42\[ \t\]+.*\}\r\n$gdb_prompt $" { incr te
stcnt } | 241 » -re "35\[ \t\]+foo \\(.*\\);.*${last_line_re}\r\n$gdb_prompt $" { incr t
estcnt } |
| 255 -re ".*$gdb_prompt $" { fail "list 35-42" ; gdb_suppress_tests } | 242 -re ".*$gdb_prompt $" { fail "list 35-42" ; gdb_suppress_tests } |
| 256 timeout { fail "list 35-42 (timeout)" ; gdb_suppress_tests } | 243 timeout { fail "list 35-42 (timeout)" ; gdb_suppress_tests } |
| 257 } | 244 } |
| 258 | 245 |
| 259 pass "successive list commands to page forward ($testcnt tests)" | 246 pass "successive list commands to page forward ($testcnt tests)" |
| 260 gdb_stop_suppressing_tests; | 247 gdb_stop_suppressing_tests |
| 261 } | 248 } |
| 262 | 249 |
| 263 # Test that repeating the list linenum command doesn't print the same | 250 # Test that repeating the list linenum command doesn't print the same |
| 264 # lines over again. Note that this test makes sure that the argument | 251 # lines over again. Note that this test makes sure that the argument |
| 265 # linenum is dropped, when we repeat the previous command. 'x/5i $pc' | 252 # linenum is dropped, when we repeat the previous command. 'x/5i $pc' |
| 266 # works the same way. | 253 # works the same way. |
| 267 | 254 |
| 268 proc test_repeat_list_command {} { | 255 proc test_repeat_list_command {} { |
| 269 global gdb_prompt | 256 global gdb_prompt |
| 257 global last_line_re |
| 270 | 258 |
| 271 set testcnt 0 | 259 set testcnt 0 |
| 272 | 260 |
| 273 send_gdb "list list0.c:10\n" | 261 send_gdb "list list0.c:10\n" |
| 274 gdb_expect { | 262 gdb_expect { |
| 275 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
incr testcnt } | 263 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
incr testcnt } |
| 276 -re ".*$gdb_prompt $" { fail "list list0.c:10" ; gdb_suppress_tests } | 264 -re ".*$gdb_prompt $" { fail "list list0.c:10" ; gdb_suppress_tests } |
| 277 timeout { fail "list list0.c:10 (timeout)" ; gdb_suppress_tests } | 265 timeout { fail "list list0.c:10 (timeout)" ; gdb_suppress_tests } |
| 278 } | 266 } |
| 279 | 267 |
| 280 send_gdb "\n" | 268 send_gdb "\n" |
| 281 gdb_expect { | 269 gdb_expect { |
| 282 -re "15\[ \t\]+foo \[(\]+.*\[)\]+;.*24\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } | 270 -re "15\[ \t\]+foo \[(\]+.*\[)\]+;.*24\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } |
| 283 -re ".*$gdb_prompt $" { fail "list 15-24" ; gdb_suppress_tests } | 271 -re ".*$gdb_prompt $" { fail "list 15-24" ; gdb_suppress_tests } |
| 284 timeout { fail "list 15-24 (timeout)" ; gdb_suppress_tests } | 272 timeout { fail "list 15-24 (timeout)" ; gdb_suppress_tests } |
| 285 } | 273 } |
| 286 | 274 |
| 287 send_gdb "\n" | 275 send_gdb "\n" |
| 288 gdb_expect { | 276 gdb_expect { |
| 289 -re "25\[ \t\]+foo \[(\]+.*\[)\]+;.*34\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } | 277 -re "25\[ \t\]+foo \[(\]+.*\[)\]+;.*34\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd
b_prompt $" { incr testcnt } |
| 290 -re ".*$gdb_prompt $" { fail "list 25-34" ; gdb_suppress_tests } | 278 -re ".*$gdb_prompt $" { fail "list 25-34" ; gdb_suppress_tests } |
| 291 timeout { fail "list 25-34 (timeout)" ; gdb_suppress_tests } | 279 timeout { fail "list 25-34 (timeout)" ; gdb_suppress_tests } |
| 292 } | 280 } |
| 293 | 281 |
| 294 send_gdb "\n" | 282 send_gdb "\n" |
| 295 gdb_expect { | 283 gdb_expect { |
| 296 » -re "35\[ \t\]+foo \\(.*\\);.*42\[ \t\]+.*\}\r\n$gdb_prompt $" { incr te
stcnt } | 284 » -re "35\[ \t\]+foo \\(.*\\);.*${last_line_re}\r\n$gdb_prompt $" { incr t
estcnt } |
| 297 -re ".*$gdb_prompt $" { fail "list 35-42" ; gdb_suppress_tests } | 285 -re ".*$gdb_prompt $" { fail "list 35-42" ; gdb_suppress_tests } |
| 298 timeout { fail "list 35-42 (timeout)" ; gdb_suppress_tests } | 286 timeout { fail "list 35-42 (timeout)" ; gdb_suppress_tests } |
| 299 } | 287 } |
| 300 | 288 |
| 301 pass "repeat list commands to page forward using 'return' ($testcnt tests)" | 289 pass "repeat list commands to page forward using 'return' ($testcnt tests)" |
| 302 gdb_stop_suppressing_tests; | 290 gdb_stop_suppressing_tests |
| 303 } | 291 } |
| 304 | 292 |
| 305 proc test_list_backwards {} { | 293 proc test_list_backwards {} { |
| 306 global gdb_prompt | 294 global gdb_prompt |
| 307 | 295 |
| 308 set testcnt 0 | 296 set testcnt 0 |
| 309 | 297 |
| 310 send_gdb "list list0.c:33\n" | 298 send_gdb "list list0.c:33\n" |
| 311 gdb_expect { | 299 gdb_expect { |
| 312 -re "28\[ \t\]+foo \\(.*\\);.*37\[ \t\]+\}\r\n$gdb_prompt $" { incr test
cnt } | 300 -re "28\[ \t\]+foo \\(.*\\);.*37\[ \t\]+\}\r\n$gdb_prompt $" { incr test
cnt } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 329 } | 317 } |
| 330 | 318 |
| 331 send_gdb "list -\n" | 319 send_gdb "list -\n" |
| 332 gdb_expect { | 320 gdb_expect { |
| 333 -re "1\[ \t\]+#include .*7\[ \t\]+x = 0;\r\n$gdb_prompt $" { incr testcn
t } | 321 -re "1\[ \t\]+#include .*7\[ \t\]+x = 0;\r\n$gdb_prompt $" { incr testcn
t } |
| 334 -re ".*$gdb_prompt $" { fail "list 1-7" ; gdb_suppress_tests } | 322 -re ".*$gdb_prompt $" { fail "list 1-7" ; gdb_suppress_tests } |
| 335 timeout { fail "list 1-7 (timeout)" ; gdb_suppress_tests } | 323 timeout { fail "list 1-7 (timeout)" ; gdb_suppress_tests } |
| 336 } | 324 } |
| 337 | 325 |
| 338 pass "$testcnt successive \"list -\" commands to page backwards" | 326 pass "$testcnt successive \"list -\" commands to page backwards" |
| 339 gdb_stop_suppressing_tests; | 327 gdb_stop_suppressing_tests |
| 340 } | 328 } |
| 341 | 329 |
| 342 # | 330 # |
| 343 # Test "list first,last" | 331 # Test "list first,last" |
| 344 # | 332 # |
| 345 | 333 |
| 346 proc test_list_range {} { | 334 proc test_list_range {} { |
| 347 global gdb_prompt | 335 global gdb_prompt |
| 336 global last_line_re |
| 337 global last_line |
| 348 | 338 |
| 349 gdb_test "list list0.c:2,list0.c:5" "2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+.
*5\[ \t\]+int x;" "list range; filename:line1,filename:line2" | 339 gdb_test "list list0.c:2,list0.c:5" "2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+.
*5\[ \t\]+int x;" "list range; filename:line1,filename:line2" |
| 350 | 340 |
| 351 gdb_test "list 2,5" "2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+.*5\[ \t\]+int x;
" "list range; line1,line2" | 341 gdb_test "list 2,5" "2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+.*5\[ \t\]+int x;
" "list range; line1,line2" |
| 352 | 342 |
| 353 # gdb_test "list -1,6" "Line number 0 out of range; .*list0.c has 39 li
nes." "list range; lower bound negative" | 343 # gdb_test "list -1,6" "Line number 0 out of range; .*list0.c has 39 li
nes." "list range; lower bound negative" |
| 354 | 344 |
| 355 # gdb_test "list -100,-40" "Line number -60 out of range; .*list0.c
has 39 lines." "list range; both bounds negative" | 345 # gdb_test "list -100,-40" "Line number -60 out of range; .*list0.c
has 39 lines." "list range; both bounds negative" |
| 356 | 346 |
| 357 gdb_test "list 30,45" "30\[ \t\]+foo \(.*\);.*43\[ \t\]+\}" "list range; upp
er bound past EOF" | 347 set past_end [expr ${last_line} + 10] |
| 348 set much_past_end [expr ${past_end} + 10] |
| 358 | 349 |
| 359 gdb_test "list 45,100" "Line number 45 out of range; .*list0.c has 43 lines.
" "list range; both bounds past EOF" | 350 gdb_test "list 30,${past_end}" "30\[ \t\]+foo \(.*\);.*${last_line_re}" "lis
t range; upper bound past EOF" |
| 351 |
| 352 gdb_test "list ${past_end},${much_past_end}" "Line number ${past_end} out of
range; .*list0.c has ${last_line} lines." "list range; both bounds past EOF" |
| 360 | 353 |
| 361 gdb_test "list list0.c:2,list1.c:17" "Specified start and end are in differe
nt files." "list range, must be same files" | 354 gdb_test "list list0.c:2,list1.c:17" "Specified start and end are in differe
nt files." "list range, must be same files" |
| 362 } | 355 } |
| 363 | 356 |
| 364 # | 357 # |
| 365 # Test "list filename:function" | 358 # Test "list filename:function" |
| 366 # | 359 # |
| 367 | 360 |
| 368 proc test_list_filename_and_function {} { | 361 proc test_list_filename_and_function {} { |
| 369 global gdb_prompt | 362 global gdb_prompt |
| 363 global last_line_re |
| 370 | 364 |
| 371 set testcnt 0 | 365 set testcnt 0 |
| 372 | 366 |
| 373 # gcc appears to generate incorrect debugging information for code | 367 # gcc appears to generate incorrect debugging information for code |
| 374 # in include files, which breaks this test. | 368 # in include files, which breaks this test. |
| 375 # SunPRO cc is the second case below, it's also correct. | 369 # SunPRO cc is the second case below, it's also correct. |
| 376 send_gdb "list list0.c:main\n" | 370 send_gdb "list list0.c:main\n" |
| 377 gdb_expect { | 371 gdb_expect { |
| 378 -re "1\[ \t\]+#include .*10\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $"
{ | 372 -re "1\[ \t\]+#include .*10\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $"
{ |
| 379 incr testcnt | 373 incr testcnt |
| 380 } | 374 } |
| 381 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { | 375 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { |
| 382 pass "list function in source file 1" | 376 pass "list function in source file 1" |
| 383 } | 377 } |
| 384 -re ".*$gdb_prompt $" { fail "list list0.c:main" } | 378 -re ".*$gdb_prompt $" { fail "list list0.c:main" } |
| 385 timeout { fail "list list0.c:main (timeout)" } | 379 timeout { fail "list list0.c:main (timeout)" } |
| 386 } | 380 } |
| 387 | 381 |
| 388 # Not sure what the point of having this function be unused is. | 382 # Not sure what the point of having this function be unused is. |
| 389 # AIX is legitimately removing it. | 383 # AIX is legitimately removing it. |
| 390 setup_xfail "rs6000-*-aix*" | 384 setup_xfail "rs6000-*-aix*" |
| 391 send_gdb "list list0.c:unused\n" | 385 send_gdb "list list0.c:unused\n" |
| 392 gdb_expect { | 386 gdb_expect { |
| 393 » -re "40\[ \t\]+unused.*43\[ \t\]+\}\r\n$gdb_prompt $" { | 387 » -re "40\[ \t\]+unused.*${last_line_re}\r\n$gdb_prompt $" { |
| 394 incr testcnt | 388 incr testcnt |
| 395 } | 389 } |
| 396 -re "37.*42\[ \t\]+\}\r\n$gdb_prompt $" { | 390 -re "37.*42\[ \t\]+\}\r\n$gdb_prompt $" { |
| 397 incr testcnt | 391 incr testcnt |
| 398 } | 392 } |
| 399 -re ".*$gdb_prompt $" { fail "list list0.c:unused" } | 393 -re ".*$gdb_prompt $" { fail "list list0.c:unused" } |
| 400 timeout { fail "list list0.c:unused (timeout)" } | 394 timeout { fail "list list0.c:unused (timeout)" } |
| 401 } | 395 } |
| 402 clear_xfail "rs6000-*-aix*" | 396 clear_xfail "rs6000-*-aix*" |
| 403 | 397 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 test_list_forward | 523 test_list_forward |
| 530 test_list_backwards | 524 test_list_backwards |
| 531 test_repeat_list_command | 525 test_repeat_list_command |
| 532 test_list_range | 526 test_list_range |
| 533 test_list_filename_and_function | 527 test_list_filename_and_function |
| 534 test_forward_search | 528 test_forward_search |
| 535 test_only_end | 529 test_only_end |
| 536 } | 530 } |
| 537 | 531 |
| 538 remote_exec build "rm -f list0.h" | 532 remote_exec build "rm -f list0.h" |
| OLD | NEW |