This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ob] Adjust member pointer test for g++ 3.3


On Sun, Jan 28, 2007 at 04:39:59PM +0100, Mark Kettenis wrote:
> Here's the relevant readelf -a output:
> 
>  <1><11f>: Abbrev Number: 3 (DW_TAG_base_type)
>      DW_AT_name        : int    
>      DW_AT_byte_size   : 4      
>      DW_AT_encoding    : 5      (signed)
> ...
>  <1><177b>: Abbrev Number: 2 (DW_TAG_typedef)
>      DW_AT_name        : PMI    
>      DW_AT_decl_file   : 1      
>      DW_AT_decl_line   : 82     
>      DW_AT_type        : <1786> 
>  <1><1786>: Abbrev Number: 20 (DW_TAG_pointer_type)
>      DW_AT_byte_size   : 8      
>      DW_AT_type        : <178c> 
>  <1><178c>: Abbrev Number: 47 (DW_TAG_ptr_to_member_type)
>      DW_AT_containing_type: <14a7>      
>      DW_AT_type        : <11f>  
> 
> So it looks like GCC 3.3.5 is emitting bogus debug info.  Do you see a
> possibility to deal with that?

Hmm... how much of a hack do you think it's worth? :-)  It's definitely
possible.

The problem is that this is a perfectly legitimate piece of debug
output, describing "int A::**" instead of "int A::*".  We could
recognize this problem based on string matching the DW_AT_producer;
I have added precedents for that before.  I don't see any other way
of doing it.

> Isn't it just another cascading error because initializing members
> through data member pointers fails?

Oh, you're probably right.

> P.S. You still need to submit some bug reports for the gdb/NNN's.

Rather delete most of them, at this point - I didn't add them in this
round of changes.  Michael Chastain did several years ago, when none of
these tests worked with GCC.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]