1 # Copyright 2016-2024 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 $binfile 40 41 if {![runto_main]} { 42 return -1 43 } 44 45 set linenr [gdb_get_line_number "break here"] 46 gdb_breakpoint $linenr 47 gdb_continue_to_breakpoint "Ensure PATH is set" ".* break here .*" 48 49 set expected_result "process $decimal is executing new program: \[^\r\n\]*$binfile2" 50 append expected_result "\[\r\n\]+.*" 51 append expected_result "Breakpoint 1, main .*at .*$srcfile2:$decimal" 52 append expected_result ".*" 53 54 gdb_test "call (int) execlp \(\"$binfile2\", \"$binfile2\", \(char \*\)0\)" \ 55 $expected_result "call execlp" 56