1# Copyright 2008-2020 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 17standard_testfile .c 18 19if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 20 untested "failed to compile" 21 return -1 22} 23 24# Some targets can't do function calls, so don't even bother with this 25# test. 26if [target_info exists gdb,cannot_call_functions] { 27 unsupported "this target can not call functions" 28 continue 29} 30 31# Start with a fresh gdb. 32 33clean_restart ${binfile} 34 35if { ![runto_main] } { 36 fail "can't run to main" 37 return 0 38} 39 40# Verify set may-call-functions behaviour. 41gdb_test_no_output "set may-call-functions off" 42gdb_test "call callexit()" \ 43 "Cannot call functions in the program: may-call-functions is off." \ 44 "inferior function call refused in off state" 45gdb_test_no_output "set may-call-functions on" 46 47# Call function (causing the program to exit), and see if gdb handles 48# it properly. 49gdb_test "call callexit()" \ 50 "The program being debugged exited.*" \ 51 "inferior function call terminated program" 52 53return 0 54