This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: <incomplete type>
- From: Craig Jeffree <craig dot jeffree at preston dot net>
- To: Jim Blandy <jimb at redhat dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Thu, 01 Sep 2005 19:09:03 +1000
- Subject: Re: <incomplete type>
- References: <1125021866.10500.71.camel@norman> <m3acj45xnv.fsf@alligator.red-bean.com> <1125301769.10500.124.camel@norman> <m3wtm48uiv.fsf@alligator.red-bean.com>
On Mon, 2005-08-29 at 11:31 -0700, Jim Blandy wrote:
> The leftmost number in <angle brackets> is the nesting level of that
> die; so if the entry for the die after the first one you listed starts
> with <2>, then it's a child of the <1> die. There should be
> DW_TAG_member(?) dies.
Ah, now I can see some sense in these dies. Looking in the actual
executable I can see this...
<1><c74a688>: Abbrev Number: 114 (DW_TAG_structure_type)
DW_AT_sibling : <c74aadf>
DW_AT_name : (indirect string, offset: 0x4ff824): Waypoint
DW_AT_byte_size : 92
DW_AT_decl_file : 60
DW_AT_decl_line : 28
DW_AT_containing_type: <c74b7e1>
<2><c74a698>: Abbrev Number: 54 (DW_TAG_inheritance)
DW_AT_type : <c74abb4>
DW_AT_data_member_location: 2 byte block: 23 0
(DW_OP_plus_uconst: 0)
DW_AT_accessibility: 1 (public)
<2><c74a6a1>: Abbrev Number: 56 (DW_TAG_variable)
DW_AT_name : (indirect string, offset: 0x837e8): typeName_
DW_AT_decl_file : 1
DW_AT_decl_line : 17
DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8e402b):
_ZN3Soi8Waypoint9typeName_E
DW_AT_type : <c74b7af>
DW_AT_external : 1
DW_AT_declaration : 1
<2><c74a6b2>: Abbrev Number: 47 (DW_TAG_member)
DW_AT_name : (indirect string, offset: 0x7724ea): wpname_
DW_AT_decl_file : 60
DW_AT_decl_line : 84
DW_AT_type : <c74b7b4>
DW_AT_data_member_location: 2 byte block: 23 4
(DW_OP_plus_uconst: 4)
DW_AT_accessibility: 3 (private)
<2><c74a6c1>: Abbrev Number: 47 (DW_TAG_member)
DW_AT_name : (indirect string, offset: 0x8e4084): wpll_
DW_AT_decl_file : 60
DW_AT_decl_line : 85
DW_AT_type : <c748414>
DW_AT_data_member_location: 2 byte block: 23 4c
(DW_OP_plus_uconst: 76)
DW_AT_accessibility: 3 (private)
<2><c74a6d0>: Abbrev Number: 48 (DW_TAG_subprogram)
[It then trails off into a long list of methods and their arguments]
So, it appears to list the members of Waypoint. Is this enough info for
gdb to not say incomplete type? How can I figure out why gdb is missing
this? When I explicitly try to reference these members of a Waypoint
object gdb says "There is no member named wpll_".
> (I'm apparently wrong about the DW_AT_name being mangled. Does the
> DW_AT_containing_type attribute of the first die point at something
> named "Soi"?)
The containing type for 'Waypoint' points to a die that appears to
describe Waypoint's base class. I couldn't find any dies relating to
the namespace 'Soi'.
Thanks for the help so far.
Cheers,
Craig.