1# Copyright 2019-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# This test checks how GDB handles missing source files around the 17# 'list' and 'info source' commands. 18 19standard_testfile 20 21# Create a source file in the output directory. 22set srcfile [standard_output_file main.c] 23set fd [open "$srcfile" w] 24puts $fd { 25int 26main () 27{ 28 return 0; 29} 30} 31close $fd 32set srcfile [remote_download host $srcfile] 33 34# Compile the source file. 35set options "debug" 36if { [gdb_compile "${srcfile}" "${binfile}" \ 37 executable $options] != "" } { 38 untested "failed to compile" 39 return -1 40} 41 42# Now delete the source file. 43remote_file host delete $srcfile 44 45# Now start GDB, run to main and try to list the source. 46clean_restart ${binfile} 47 48if ![runto_main] then { 49 fail "can't run to main" 50 return 0 51} 52 53gdb_test "list" "1\[ \t\]+in\[ \t\]+$srcfile" 54 55gdb_test "info source" \ 56 [multi_line \ 57 "info source" \ 58 "Current source file is $srcfile\(" \ 59 "Compilation directory is \[^\n\r\]+)?" \ 60 "Source language is c." \ 61 "Producer is \[^\n\r\]+" \ 62 "Compiled with DWARF $decimal debugging format." \ 63 "Does not include preprocessor macro info." ] 64 65