From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20744 invoked by alias); 16 Nov 2012 02:10:05 -0000 Received: (qmail 20661 invoked by uid 22791); 16 Nov 2012 02:10:03 -0000 X-SWARE-Spam-Status: No, hits=-4.7 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 16 Nov 2012 02:09:57 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1TZBNT-0001EW-N1 from Luis_Gustavo@mentor.com ; Thu, 15 Nov 2012 18:09:55 -0800 Received: from NA1-MAIL.mgc.mentorg.com ([147.34.98.181]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 15 Nov 2012 18:09:55 -0800 Received: from [0.0.0.0] ([172.16.63.104]) by NA1-MAIL.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 15 Nov 2012 18:09:54 -0800 Message-ID: <50A5A08D.4080907@codesourcery.com> Date: Fri, 16 Nov 2012 02:10:00 -0000 From: Luis Machado Reply-To: lgustavo@codesourcery.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20120313 Lightning/1.0b2 Thunderbird/3.1.20 MIME-Version: 1.0 To: Marc Khouzam CC: 'Joel Brobecker' , "'gdb-patches@sourceware.org'" , 'Tom Tromey' Subject: Re: [PATCH] Fix mi "-var-create" regression References: <5075D4FD.9050900@mentor.com> <20121014171805.GB3050@adacore.com> <507BFF97.2000900@codesourcery.com> <87y5j4ziof.fsf@fleche.redhat.com> <508DB53E.30507@codesourcery.com> <87625rwvcp.fsf@fleche.redhat.com> <50A3EF5D.4060607@codesourcery.com> <20121115174804.GE3790@adacore.com> <87sj8azotj.fsf@fleche.redhat.com> ,<50A57AB7.8020002@codesourcery.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------060307000201060301020101" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-11/txt/msg00450.txt.bz2 This is a multi-part message in MIME format. --------------060307000201060301020101 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1509 On 11/15/2012 10:50 PM, Marc Khouzam wrote: > I think it would be faster if you took care of it. > > Much appreciated! > > (sorry for the top-post) > > > Best regards, > > Marc > > > ----- Original Message ----- > From: Luis Machado > To: Marc Khouzam > Cc: 'Tom Tromey', 'Joel Brobecker', "'lgustavo@codesourcery.com'", "'gdb-patches@sourceware.org'" > Sent: 15-11-2012 18:28 > Subject: Re: [PATCH] Fix mi "-var-create" regression > > > > On 11/15/2012 06:54 PM, Marc Khouzam wrote: >>> -----Original Message----- >>> From: Tom Tromey [mailto:tromey@redhat.com] >>> Sent: Thursday, November 15, 2012 1:47 PM >>> To: Joel Brobecker >>> Cc: Marc Khouzam; 'lgustavo@codesourcery.com'; >>> 'gdb-patches@sourceware.org' >>> Subject: Re: [PATCH] Fix mi "-var-create" regression >>> >>>>>>>> "Joel" == Joel Brobecker writes: >>> >>> Joel> I haven't looked at the patch itself, but at this >>> point, we really >>> Joel> want any of them to be extra safe. If the approver >>> thinks so, then >>> Joel> it can go in. >>> >>> I think it would be fine. >> >> Thanks! >> >> So how does it work? Luis, are you ok to check it in to 7_5 >> yourself or should I do it (am I even allowed to do that?) > > Either option is fine with me. If you want, i can check it in. > > Regards, > Luis Done. Attached is what i checked in. Regards, Luis --------------060307000201060301020101 Content-Type: text/x-patch; name="rtti-print-object.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="rtti-print-object.diff" Content-length: 3914 2012-10-15 Luis Machado gdb/ * value.c (value_actual_type): Check for TYPE_CODE_STRUCT target types. gdb/testsuite/ * gdb.mi/mi-var-create-rtti.c: New file. * gdb.mi/mi-var-create-rtti.exp: New file. Index: gdb/gdb/value.c =================================================================== --- gdb.orig/gdb/value.c 2012-10-28 20:22:13.209235579 -0200 +++ gdb/gdb/value.c 2012-10-28 20:27:07.857218717 -0200 @@ -850,8 +850,12 @@ value_actual_type (struct value *value, result = value_type (value); if (opts.objectprint) { - if (TYPE_CODE (result) == TYPE_CODE_PTR + /* If result's target type is TYPE_CODE_STRUCT, proceed to + fetch its rtti type. */ + if ((TYPE_CODE (result) == TYPE_CODE_PTR || TYPE_CODE (result) == TYPE_CODE_REF) + && TYPE_CODE (check_typedef (TYPE_TARGET_TYPE (result))) + == TYPE_CODE_STRUCT) { struct type *real_type; Index: gdb/gdb/testsuite/gdb.mi/mi-var-create-rtti.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ gdb/gdb/testsuite/gdb.mi/mi-var-create-rtti.c 2012-10-28 19:27:03.241424995 -0200 @@ -0,0 +1,24 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2012 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 . */ + +int +main (void) +{ + int i = 0; + + return i; /* next-line */ +} Index: gdb/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ gdb/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp 2012-10-28 20:21:34.737237782 -0200 @@ -0,0 +1,52 @@ +# Copyright 2012 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 . + +load_lib mi-support.exp +set MIFLAGS "-i=mi" + +gdb_exit +if [mi_gdb_start] { + continue +} + +standard_testfile .c +set opts {debug} + +if [build_executable $testfile.exp $testfile $srcfile $opts] { + return -1 +} + +mi_delete_breakpoints +mi_gdb_reinitialize_dir $srcdir/$subdir +mi_gdb_load ${binfile} + +if ![mi_run_to_main] { + untested "could not run to main" + return -1 +} + +# Test creating a register-based variable. We pick +# register SP since it is a pointer to data. This checks +# for a regression when creating MI variables from pointers +# with "print object" enabled. + +# Enable "print object" +mi_gdb_test "-gdb-set print object on" ".*" + +# Test creating a variable for $sp +mi_gdb_test "-var-create sp1 * \$sp" \ + "\\^done,name=\"sp1\",numchild=\"0\",value=\"$hex\",type=\"void \\*\",has_more=\"0\"" \ + "-var-create sp1 * \$sp" +gdb_exit --------------060307000201060301020101--