# Copyright 2009, 2010 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Test multi-exec / multi-process features that work for all configurations, # even ones that cannot run multiple processes simultaneously. set testfile "base" set exec1 "hello" set srcfile1 ${exec1}.c set binfile1 ${objdir}/${subdir}/${exec1} set exec2 "hangout" set srcfile2 ${exec2}.c set binfile2 ${objdir}/${subdir}/${exec2} set exec3 "goodbye" set srcfile3 ${exec3}.c set binfile3 ${objdir}/${subdir}/${exec3} if { [prepare_for_testing ${testfile}.exp ${exec1} "${srcfile1}" {debug nowarnings}] } { return -1 } if { [prepare_for_testing ${testfile}.exp ${exec2} "${srcfile2}" {debug nowarnings}] } { return -1 } if { [prepare_for_testing ${testfile}.exp ${exec3} "${srcfile3}" {debug nowarnings}] } { return -1 } gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile1} # Add an empty inferior space, switch to it, and load a main # executable into it. gdb_test "add-inferior" "Added inferior 2.*" gdb_test "inferior 2" "Switching to inferior 2.*" gdb_test "file ${binfile2}" "" # Add a new inferior space and load a main executable into it in one # command. gdb_test "add-inferior -exec ${binfile3}" # Check that we have multiple spaces. gdb_test "info inferiors" \ "Executable.*${exec3}.*${exec2}.*${exec1}.*" # Test that we have multiple symbol tables. gdb_test "inferior 1" gdb_test "info functions commonfun" "${srcfile1}.*" gdb_test "inferior 3" gdb_test "info functions commonfun" "${srcfile3}.*" gdb_test "inferior 1" gdb_test "set listsize 1" "" gdb_test "list commonfun" "from hello.*" gdb_test "print hglob" "1" gdb_test "print glob" "92" "print glob (${exec1})" gdb_test "inferior 3" gdb_test "print gglob" "2" gdb_test "print glob" "45" "print glob (${exec3})" gdb_test "list commonfun" "from goodbye.*" # Let's run the hello program. gdb_test "inferior 1" if { ![runto_main] } then { return -1 } gdb_test "break hello" "" gdb_test "continue" "Breakpoint \[0-9\].*, hello.*"