From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4735 invoked by alias); 14 Sep 2002 00:37:10 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 4728 invoked from network); 14 Sep 2002 00:37:09 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 14 Sep 2002 00:37:09 -0000 Received: from ges.redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id DA2A83CA7; Fri, 13 Sep 2002 20:37:06 -0400 (EDT) Message-ID: <3D8284B2.5080708@ges.redhat.com> Date: Fri, 13 Sep 2002 17:37:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.0) Gecko/20020824 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Keith Seitz Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA/MI testsuite] gdb/701 test (varobj) References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-09/txt/msg00286.txt.bz2 > Hi, > > The test below tickles a crashing bug in gdb's varobj code, as reported in > gdb/701. > > [I felt it was a lot easier to add a new test file than to try to > integrate this into the existing tests -- too many line numbers to reorder > if adding a line into var-cmd.c...] Ok. Andrew > ChangeLog > 2002-09-13 Keith Seitz > > * gdb701.exp: New file for testing varobj target type bug. > * gdb701.c: New file. > > Patch > Index: testsuite/gdb.mi/gdb701.c > =================================================================== > RCS file: testsuite/gdb.mi/gdb701.c > diff -N testsuite/gdb.mi/gdb701.c > *** testsuite/gdb.mi/gdb701.c 1 Jan 1970 00:00:00 -0000 > --- testsuite/gdb.mi/gdb701.c 13 Sep 2002 23:47:55 -0000 > *************** > *** 0 **** > --- 1,15 ---- > + struct _foo > + { > + int x; > + int y; > + int z; > + }; > + > + typedef struct _foo Foo; > + > + int > + main (int argc, char *argv[]) > + { > + Foo *foo = 0; > + exit (0); > + } > Index: testsuite/gdb.mi/gdb701.exp > =================================================================== > RCS file: testsuite/gdb.mi/gdb701.exp > diff -N testsuite/gdb.mi/gdb701.exp > *** testsuite/gdb.mi/gdb701.exp 1 Jan 1970 00:00:00 -0000 > --- testsuite/gdb.mi/gdb701.exp 13 Sep 2002 23:47:55 -0000 > *************** > *** 0 **** > --- 1,67 ---- > + # Copyright 2002 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. > + > + # Please email any bugs, comments, and/or additions to this file to: > + # bug-gdb@prep.ai.mit.edu > + > + # > + # test gdb/701 > + # > + > + load_lib mi-support.exp > + set MIFLAGS "-i=mi" > + > + gdb_exit > + if [mi_gdb_start] { > + continue > + } > + > + set testfile gdb701 > + set srcfile "$testfile.c" > + set binfile $objdir/$subdir/$testfile > + if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable debug] != ""} { > + gdb_suppress_entire_file "Testcase compile failed, so all test in this file will automatically fail." > + } > + > + # When varobj reports the types of objects, it often isn't really reporting > + # the type as GDB knows it. For example, in this testcase, we have a > + # structure which has been typedefed. A varobj of this type would really have > + # a type of "TYPE_CODE_TYPEDEF". It's target type is "TYPE_CODE_STRUCT". Varobj > + # should skip over the TYPEDEF type when figuring out the varobj's children. > + # If it doesn't, Bad Things Happen(TM). > + > + # Run to main > + mi_run_to_main > + > + # Step over "foo = 0" > + mi_next "step over \"foo = 0\"" > + > + mi_gdb_test "-var-create fooPtr * foo" \ > + "(&\".*\"\r\n)*\\^done,name=\"fooPtr\",numchild=\"3\",type=\"Foo \\*\"" \ > + "create fooPtr" > + > + mi_gdb_test "-var-list-children fooPtr" \ > + "(&\".*\"\r\n)*\\^done,numchild=\"3\",.*" \ > + "list children of fooPtr" > + > + foreach i [list x y z] { > + mi_gdb_test "-var-list-children fooPtr.$i" \ > + "(&\".*\"\r\n)*\\^done,numchild=\"0\"" \ > + "list children of fooPtr.$i" > + } > + > + mi_gdb_exit > + return 0 > >