# Test the "list" command with linespecs that expand to multiple
# locations.
-proc test_list_ambiguous_function {} {
+proc test_list_ambiguous_symbol {symbol_line symbol} {
global srcfile srcfile2
- set lineno0 [gdb_get_line_number "ambiguous (void)" $srcfile]
- set lineno1 [gdb_get_line_number "ambiguous (void)" $srcfile2]
+ set lineno0 [gdb_get_line_number $symbol_line $srcfile]
+ set lineno1 [gdb_get_line_number $symbol_line $srcfile2]
set lines0_re [line_range_pattern [expr $lineno0 - 5] [expr $lineno0 + 4]]
set lines1_re [line_range_pattern [expr $lineno1 - 5] [expr $lineno1 + 4]]
set any "\[^\r\n\]*"
set h0_re "file: \"${any}list-ambiguous0.c\", line number: $lineno0"
set h1_re "file: \"${any}list-ambiguous1.c\", line number: $lineno1"
- gdb_test "list ambiguous" "${h0_re}${lines0_re}\r\n${h1_re}${lines1_re}"
-
- gdb_test "list main,ambiguous" \
- "Specified last line 'ambiguous' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
- gdb_test "list ,ambiguous" \
- "Specified last line 'ambiguous' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
- gdb_test "list ambiguous,main" \
- "Specified first line 'ambiguous' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
- gdb_test "list ambiguous,ambiguous" \
- "Specified first line 'ambiguous' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
- gdb_test "list ambiguous," \
- "Specified first line 'ambiguous' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+ gdb_test "list $symbol" "${h0_re}${lines0_re}\r\n${h1_re}${lines1_re}"
+
+ gdb_test "list main,$symbol" \
+ "Specified last line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+ gdb_test "list ,$symbol" \
+ "Specified last line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+ gdb_test "list $symbol,main" \
+ "Specified first line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+ gdb_test "list $symbol,$symbol" \
+ "Specified first line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+ gdb_test "list $symbol," \
+ "Specified first line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
# While at it, test the "edit" command as well, since it shares
# code with "list".
- gdb_test "edit ambiguous" \
+ gdb_test "edit $symbol" \
"Specified line is ambiguous:\r\n${h0_re}\r\n${h1_re}"
}
+proc test_list_ambiguous_function {} {
+ test_list_ambiguous_symbol "ambiguous_fun (void)" "ambiguous_fun"
+ test_list_ambiguous_symbol "ambiguous_var" "ambiguous_var"
+}
+
gdb_test_no_output "set listsize 10"
test_list_ambiguous_function