Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Nenad Vukicevic <nenad@intrepid.com>
To: asmwarrior <asmwarrior@gmail.com>
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
Date: Fri, 09 Jul 2010 05:58:00 -0000	[thread overview]
Message-ID: <4C36BA7D.20007@intrepid.com> (raw)
In-Reply-To: <4C368A68.9010308@gmail.com>

  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<<arg;
>             }
>             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)
>


  reply	other threads:[~2010-07-09  5:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-09  2:35 asmwarrior
2010-07-09  5:58 ` Nenad Vukicevic [this message]
2010-07-09  6:04   ` asmwarrior
2010-07-10  4:09   ` Daniel Berlin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C36BA7D.20007@intrepid.com \
    --to=nenad@intrepid.com \
    --cc=asmwarrior@gmail.com \
    --cc=gcc@gcc.gnu.org \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox