# Copyright 2005 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # This uncovers a stabs bug. We were replacing a forward reference # type with a type of the same NAME without checking whether it's type # slot was the same as the one we were replacing it with. That caused an # infinite recursion in the type hierarchy. if $tracelevel then { strace $tracelevel } # # test running programs # set prms_id 0 set bug_id 0 set testfile "r4183684" set srcfile ${testfile}.cc set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {c++ debug} ] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } # Start with a fresh gdb gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_file_cmd "${binfile}" send_gdb "set width 0\n" gdb_expect -re "$gdb_prompt $" gdb_test "break [gdb_get_line_number "good stopping point in main"]" "Breakpoint 1 at $hex: file.*, line.*\\." "Set breakpoint on line 'good stopping point in main'" gdb_test "break [gdb_get_line_number "good stopping point in reportBase"]" "Breakpoint 2 at $hex: file.*, line.*\\." "Set breakpoint on line 'good stopping point in reportBase'" gdb_test "run" "Starting program: $binfile *\r\n\Reading symbols for shared libraries \(\[.+\]\)+ done.*Breakpoint 1, main.*" "continue to breakpoint in main()" gdb_test "print cont" "\\$$decimal = {<Widget> = {containerVar = 200}, contVar = 100}" "print cont in main" gdb_test "cont" "Continu.* *Breakpoint 2, reportBase.*" "continue to breakpoint in reportBase()" gdb_test "print *input" "\\$$decimal = {containerVar = 200}" "print input in reportBase" gdb_exit return 0