1# Copyright (C) 2011-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 16if {![can_spawn_for_attach]} { 17 return 0 18} 19 20standard_testfile .c 21set executable ${testfile} 22 23if { [prepare_for_testing "failed to prepare" $executable "" [list debug "additional_flags=-fPIE" "ldflags=-pie"]] } { 24 return -1 25} 26 27clean_restart $executable 28set arch "" 29set test "show architecture" 30gdb_test_multiple $test $test { 31 -re "The target architecture is set to \"auto\" \\(currently \"(.*)\"\\)\\.\r\n$gdb_prompt $" { 32 set arch $expect_out(1,string) 33 pass $test 34 } 35} 36if ![runto_main] { 37 return 0 38} 39set test "sanity check info shared" 40gdb_test_multiple "info shared" $test { 41 -re "From\[ \t\]+To\[ \t\]+Syms Read\[ \t\]+Shared Object Library\r\n0x.*\r\n$gdb_prompt $" { 42 pass $test 43 } 44 -re "No shared libraries loaded at this time\\.\r\n$gdb_prompt $" { 45 untested "no shared libraries loaded" 46 } 47} 48gdb_exit 49 50if {$arch == ""} { 51 untested "no architecture set" 52 return 0 53} 54 55# Start the program running and then wait for a bit, to be sure 56# that it can be attached to. 57 58set test_spawn_id [spawn_wait_for_attach $binfile] 59set testpid [spawn_id_get_pid $test_spawn_id] 60 61gdb_start 62file delete -- $binfile 63gdb_test "attach $testpid" "Attaching to process $testpid\r\n.*" "attach" 64gdb_test "set architecture $arch" "The target architecture is set to \"$arch\"\\." 65gdb_test "info shared" "From\[ \t\]+To\[ \t\]+Syms Read\[ \t\]+Shared Object Library\r\n0x.*" 66 67kill_wait_spawned_process $test_spawn_id 68