Re: sun compiler and gdb

Tomasz Grobelny
2012-05-10T22:08:31Z

On Thu, 10 May 2012 14:39:07 -0600, Tom Tromey <tromey@redhat.com> wrote:
>>>>>> "Tomasz" == Tomasz Grobelny <tomasz@grobelny.oswiecenia.net>
writes:
>
> Tomasz> Reading symbols from
> /login/sg209371/gdbtest/a.out.sparc...expanding to
> Tomasz> full symbols...Die: DW_TAG_<unknown> (abbrev 9, offset 0x1bb)
>
> You want DIE 0x1bb...
>
> Tomasz> parent at offset: 0x197
>
> ... or perhaps 0x197 ...
>
> Tomasz> With the relevant portion of dwarfdump looking like this:
> Tomasz> <2>< 443> DW_TAG_SUN_class_template
>
> But this appears to be DIE 0x443.
>
Actually it is DIE 443(dec) == 1bb(hex)
When you posted output from another dwarfdump version it took me a while
to figure out that one tool is giving numbers in hex and the other in dec.

> Tomasz> Shouldn't unknown tag just be ignored?
>
> Yes, but I think what is happening is that you have one DIE which uses
> DW_AT_type to refer to another DIE, and gdb doesn't know what to do with
> the type DIE.
>
Does the above comment about dec/hex values change your analysis here?

> Tomasz> I searched for other tags that might be compiler specific and
> Tomasz> here is the list:
>
> Those are actually attributes; tags would be DW_TAG_something.
>
Thanks for pointing that out - I am new to DWARF stuff and do not yet see
the difference between attribute, tag and die.

> Tomasz> Are any of these supported or (at least) explicitly ignored by
gdb?
>
> AFAIK, no Sun extensions to DWARF are supported by gdb.
> Generally they should be ignored, but as you've seen, there are
> sometimes exceptions. My impression is that this part of gdb is not
> heavily tested.
>
I will have a look it they can somehow be removed...