This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Missing DW_AT_MIPS_linkage_name specifier for constructor debug info
- From: Daniel Jacobowitz <drow at false dot org>
- To: Jeff Johnston <jjohnstn at redhat dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 3 Dec 2004 15:56:50 -0500
- Subject: Re: Missing DW_AT_MIPS_linkage_name specifier for constructor debug info
- References: <41B0CD21.9030004@redhat.com>
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