This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: Missing DW_AT_MIPS_linkage_name specifier for constructor debug info


On Fri, Dec 03, 2004 at 03:31:29PM -0500, Jeff Johnston wrote:
> I have noticed that both gcc 3.2.3 and gcc 3.4.1 don't generate a physical 
> mangled name for the debuginfo of a class constructor whereas they do for 
> every other member function of the class.

> This causes some problems for gdb which demangles the physical name when 
> looking up symbols.  Since the name given in the debug info is just the 
> member name, gdb doesn't find the constructor when asked to (e.g. list 
> Test::Test).  A gdb kludge would be required to make this work properly.

No kludge would be needed - some serious _fixes_ would be needed,
however.  The debug information is correct but GDB can't cope with it.

> Is there a reason for this or is it simply an oversight?

This is caused by the cloning of class constructors; later on in the
debug info, you should find two concrete instances which use
DW_AT_abstract_origin to point back at the constructor entry.
They may or may not have DW_AT_MIPS_linkage_name; in any case, they
would have different linkage names.  GDB needs to stop at either of
them to satisfy a breakpoint on the constructor.

You can find at-length discussion of this in the gdb@ and gdb-patches@
archives (at least three times now).

-- 
Daniel Jacobowitz


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