# Copyright 2004-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 . standard_testfile .c if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } { untested "failed to compile" return -1 } set location [gdb_get_line_number "say_hello" "sep-proc.c"] clean_restart ${binfile} # Try to display the source code inside a file which is included by # another source file. The purpose of this test is to verify that # this operation works, even before we have loaded full symbols for # that file (by doing a "break say_hello" for instance). # # We just check that the command succeeds, so no need to match the # complete exact output. Simply verifying that we get procedure # say_hello is good enough, and avoid unnecessary failures is someone # decides later to reformat sep-proc.c. gdb_test "list sep-proc.c:$location" \ "void.*say_hello.*" \ "list using location inside included file" # Try the same, but this time with a breakpoint. We need to exit # GDB to make sure that we havn't loaded the full symbols yet when # we test the breakpoint insertion. gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} set test "breakpoint inside included file" gdb_test_multiple "break sep-proc.c:$location" "$test" { -re "Breakpoint.*at.* file .*sep-proc.c, line .*" { pass "$test" } -re "No source file named sep-proc.c.*" { fail "$test" } }