1# Copyright 2014-2023 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15load_lib dwarf.exp 16 17# This test can only be run on targets which support DWARF-2 and use gas. 18if {![dwarf2_support]} { 19 return 0 20} 21 22standard_testfile 23 24set sources \ 25 [list \ 26 ${testfile}.c \ 27 ${testfile}-hello.c \ 28 ${testfile}-world.c] 29set sources [lmap i $sources { string cat "${srcdir}/${subdir}/" $i }] 30lassign [function_range hello $sources] \ 31 hello_start hello_len 32lassign [function_range world $sources] \ 33 world_start world_len 34 35set sources \ 36 [list \ 37 ${testfile}.c \ 38 ${testfile}-hello-dbg.S \ 39 ${testfile}-hello.c \ 40 ${testfile}-world-dbg.S \ 41 ${testfile}-world.c] 42set flags \ 43 [list \ 44 "nodebug" \ 45 "additional_flags=\"-DHELLO_START=$hello_start\"" \ 46 "additional_flags=\"-DHELLO_END=$hello_start + $hello_len\"" \ 47 "additional_flags=\"-DWORLD_START=$world_start\"" \ 48 "additional_flags=\"-DWORLD_END=$world_start + $world_len\""] 49set executable ${testfile} 50if {[build_executable ${testfile}.exp ${executable} $sources $flags] == -1} { 51 return -1 52} 53 54clean_restart $executable 55 56gdb_test "break hello" \ 57 "Breakpoint $decimal at $hex: file .*dw2-abs-hi-pc-hello\\.c, line 24\\." 58 59gdb_test "break world" \ 60 "Breakpoint $decimal at $hex: file .*dw2-abs-hi-pc-world\\.c, line 24\\." 61