old-cross-binutils/gdb/testsuite/gdb.base/label.exp
Tom Tromey 9ef07c8ca4 gdb
PR breakpoints/11816:
	* linespec.c (decode_line_1): Parse `function:label' linespecs.
	(decode_compound): Update.
	(find_function_symbol): New function.
	(decode_dollar): Update.
	(decode_label): Add 'function_symbol' parameter.  Handle
	function-relative labels.
	(decode_variable): Update.
	(symbol_found): Add 'function_symbol' parameter.  Use label's PC,
	not its line.  Set `special_display' and canonical name for
	labels.
gdb/doc
	* gdb.texinfo (Specify Location): Document `function:label'
	linespec.
gdb/testsuite
	* gdb.base/label.exp: Use `main:there' linespec.  Add re-running
	test.
2011-03-24 20:25:17 +00:00

65 lines
1.4 KiB
Text

# Copyright 2010, 2011 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
if $tracelevel then {
strace $tracelevel
}
if [is_remote target] then {
return 0
}
#
# test running programs
#
set testfile "label"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if { [prepare_for_testing ${testfile}.exp $testfile ${testfile}.c debug] } {
untested label.exp
return -1
}
if {![runto_main]} {
fail "label tests suppressed"
return -1
}
gdb_test "break here" \
"Breakpoint.*at.*" \
"breakpoint here"
gdb_test "break main:there" \
"Breakpoint.*at.*" \
"breakpoint there"
gdb_test "cont" \
"Breakpoint 3,.*" \
"continue to 'there'"
gdb_test "cont" \
"Breakpoint 2,.*" \
"continue to 'here'"
rerun_to_main
gdb_test "cont" \
"Breakpoint 3,.*" \
"continue to 'there' after re-run"