Fri Mar 25 13:46:12 GMT 2005
Michael Eager wrote:
> I think that every time this has been discussed, we have
> come to the conclusion that the prefered solution
> is to use the C++ name (or canonical name for templates
> or functions) and a reference to the actual object.
> The reference has a relocation to the object, which
> implictly relates the DWARF specification with the
> linker name.
That is certainly consistent with the philosophy
and implementation of dwarf. However, I don't
see how you can include a "reference to the
actual object" for a declaration.
Let me try to restate my problem:
I have a member function (foo) definition in a.o, along
with dwarf information that describes that member
function, along with it's address in the DW_AT_low_pc
attribute. This part is great.
In several other object files (b.o, c.o), I have a
declaration for that member function that gets recorded in the
dwarf information. Since it's just a declaration,
there's curently no way for me to hook this dwarf
information up to the "real" object in a.o
In the debugger, I want to reconcile this information
so that I know the "foo" declared in b.o is the same
as the "foo" declared in c.o and the same as the "foo"
declared in a.o.
I can compare all the argument types, and the class
heirarchy one step at a time. For templates class
definitions and instances, it's more work.
It's *possible* to reconcile the dwarf information
this way, but it's a pain to implement, if the
debugger has been using the mangled names to do
disambiguation in the past. I want to make sure this
is really necessary before I embark on getting it
implemeted in our debugger. People in my group are
going to argue that it's unnecessary, and we should
just put copies of the mangled names everywhere like gcc
More information about the Dwarf-discuss