From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31616 invoked by alias); 9 Jul 2010 05:58:35 -0000 Received: (qmail 31471 invoked by uid 22791); 9 Jul 2010 05:58:34 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,TW_SM,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from intrepid.intrepid.com (HELO mail.intrepid.com) (74.95.8.113) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 09 Jul 2010 05:58:31 +0000 Received: from nenad-vukicevics-macbook-pro.local ([10.10.11.101]) by mail.intrepid.com (8.13.8/8.13.8) with ESMTP id o695wL6n005581; Thu, 8 Jul 2010 22:58:21 -0700 Message-ID: <4C36BA7D.20007@intrepid.com> Date: Fri, 09 Jul 2010 05:58:00 -0000 From: Nenad Vukicevic User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.4) Gecko/20100608 Thunderbird/3.1 MIME-Version: 1.0 To: asmwarrior CC: gdb@sourceware.org, gcc@gcc.gnu.org Subject: Re: Two debug entries for one local variables, is it a bug in GCC or GDB References: <4C368A68.9010308@gmail.com> In-Reply-To: <4C368A68.9010308@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-07/txt/msg00033.txt.bz2 I reported something similar back in January: http://gcc.gnu.org/ml/gcc/2010-01/msg00054.html As I recall, GCC creates duplicates. Nenad On 7/8/10 7:33 PM, asmwarrior wrote: > I have post this message to both GCC and GDB, because I'm not sure it > is a bug in GDB or GCC. > Hi, I have just find two dwarf debug entries for one local variables. > > For example, the sample code is just like: > > ----------------------------------------- > > wxString ParserThread::ReadAncestorList() > { > > wxString ccc; > wxString templateArgument; > wxString aaa; > aaa = m_Tokenizer.GetToken(); // eat ":" > templateArgument = aaa; > while (!TestDestroy()) > { > > //Peek the next token > wxString next = m_Tokenizer.PeekToken(); > > if (next.IsEmpty() > || next==ParserConsts::opbrace > || next==ParserConsts::semicolon ) // here, we are at the > end of ancestor list > { > break; > } > else if (next==ParserConsts::lt) // class AAA : BBB< > int, float> > { > wxString arg = SkipAngleBraces(); > if(!arg.IsEmpty()) // find a matching<> > { > templateArgument< } > else > { > TRACE(_T("Not Matching<> find. Error!!!") ); > } > } > ... > ------------------------------------------- > > But I found that GDG can show the wxString aaa correctly, but wxString > templateArgument incorrectly. > > I have just check the debug information in the object file. > and found that there are two entries for local variable > "argumentTemplate", but only one entry for "aaa". > > -------------------------------------------- > <2><40a9f>: Abbrev Number: 182 (DW_TAG_variable) > <40aa1> DW_AT_name : (indirect string, offset: 0x1095): > templateArgument > <40aa5> DW_AT_decl_file : 19 > <40aa6> DW_AT_decl_line : 2593 > <40aa8> DW_AT_type :<0xd168> > <40aac> DW_AT_accessibility: 3 (private) > <40aad> DW_AT_location : 2 byte block: 53 6 (DW_OP_reg3; > DW_OP_deref) > <2><40ab0>: Abbrev Number: 164 (DW_TAG_lexical_block) > <40ab2> DW_AT_ranges : 0x168 > <3><40ab6>: Abbrev Number: 165 (DW_TAG_variable) > <40ab8> DW_AT_name : ccc > <40abc> DW_AT_decl_file : 19 > <40abd> DW_AT_decl_line : 2592 > <40abf> DW_AT_type :<0xd168> > <40ac3> DW_AT_location : 2 byte block: 91 50 (DW_OP_fbreg: -48) > <3><40ac6>: Abbrev Number: 179 (DW_TAG_variable) > <40ac8> DW_AT_name : (indirect string, offset: 0x1095): > templateArgument > <40acc> DW_AT_decl_file : 19 > <40acd> DW_AT_decl_line : 2593 > <40acf> DW_AT_type :<0xd168> > <40ad3> DW_AT_location : 2 byte block: 91 4c (DW_OP_fbreg: -52) > <3><40ad6>: Abbrev Number: 165 (DW_TAG_variable) > <40ad8> DW_AT_name : aaa > <40adc> DW_AT_decl_file : 19 > <40add> DW_AT_decl_line : 2594 > <40adf> DW_AT_type :<0xd168> > <40ae3> DW_AT_location : 2 byte block: 91 48 (DW_OP_fbreg: -56) > <3><40ae6>: Abbrev Number: 170 (DW_TAG_lexical_block) > > ------------------------------------------------------------------------------ > > Also, you can see the screen shot in my Codeblocks forums' post: > > http://forums.codeblocks.org/index.php/topic,12873.msg86906.html#msg86906 > > > So, my question is: > > Is this a bug in GCC or GDB? ( I have just test the MinGW GCC 4.5 and > MinGW 4.4.4, they get the same result) > > > Thanks > > Asmwarrior (ollydbg from codeblocks' forum) >