| # Copyright 2012-2021 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/>. |
| |
| # Bug 17394 |
| # Test for break-point at a function only for a selected ASM file. |
| |
| load_lib dwarf.exp |
| |
| standard_testfile .c |
| set execfile $testfile |
| set asm_file1 break-asm-file1.s |
| set asm_file0 break-asm-file0.s |
| |
| # This test can only be run on targets which support DWARF-2 and use gas. |
| if {![dwarf2_support]} { |
| return 0 |
| } |
| |
| if {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \ |
| object {debug nowarnings optimize=-O0}] != ""} { |
| return -1 |
| } |
| |
| # Compile .s files without debug information. |
| if {[gdb_compile ${srcdir}/${subdir}/$asm_file0 ${binfile}2.o \ |
| object {nodebug}] != ""} { |
| return -1 |
| } |
| if {[gdb_compile ${srcdir}/${subdir}/$asm_file1 ${binfile}3.o \ |
| object {nodebug}] != ""} { |
| return -1 |
| } |
| |
| if {[gdb_compile [list ${binfile}1.o ${binfile}2.o ${binfile}3.o] \ |
| "${binfile}" executable {}] != ""} { |
| return -1 |
| } |
| |
| clean_restart $execfile |
| |
| gdb_test "break a/$asm_file0:func" \ |
| "Breakpoint 1 at 0x\[0-9a-fA-F\]+: file .*a/$asm_file0, line 7\\\." \ |
| "set a break-point at a global function only for a selected ASM file." |
| |
| gdb_test "delete 1" |
| |
| gdb_test "break b/$asm_file0:func" \ |
| "Breakpoint 2 at 0x\[0-9a-fA-F\]+: file .*b/$asm_file0, line 7\\\." \ |
| "set a break-point at a function only for a selected ASM file." |
| |
| gdb_test "delete 2" |
| |
| gdb_test "break $asm_file0:func" \ |
| "Breakpoint 3 at 0x\[0-9a-fA-F\]+: .*$asm_file0.*(2 locations).*" \ |
| "set a break-point at function in all instances for a selected ASM file." |
| |