1 # Copyright 2016-2025 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/>. 15 16 # Test an inferior function call which execs a new program. 17 # This is a test for breakpoints/19546. 18 19 standard_testfile 20 21 set testfile2 "infcall-exec2" 22 set srcfile2 "${testfile2}.c" 23 set binfile2 [standard_output_file $testfile2] 24 25 # Build the two executables for the test. 26 if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable debug] != ""} { 27 untested "could not build $binfile" 28 return -1 29 } 30 if {[gdb_compile $srcdir/$subdir/$srcfile2 $binfile2 executable debug] != ""} { 31 untested "could not build $binfile2" 32 return -1 33 } 34 35 if { [is_remote target] } { 36 set binfile2 [gdb_remote_download target $binfile2] 37 } 38 39 clean_restart 40 gdb_load $binfile 41 42 if {![runto_main]} { 43 return -1 44 } 45 46 set linenr [gdb_get_line_number "break here"] 47 gdb_breakpoint $linenr 48 gdb_continue_to_breakpoint "Ensure PATH is set" ".* break here .*" 49 50 set expected_result "process $decimal is executing new program: \[^\r\n\]*$binfile2" 51 append expected_result "\[\r\n\]+.*" 52 append expected_result "Breakpoint 1, main .*at .*$srcfile2:$decimal" 53 append expected_result ".*" 54 55 gdb_test "call (int) execlp \(\"$binfile2\", \"$binfile2\", \(char \*\)0\)" \ 56 $expected_result "call execlp" 57