This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
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