This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: [Linux-ia64] Re: gdb null ptr
Jim Blandy <jimb@cygnus.com> writes:
> I don't think limiting the caching to C++ programs solves the problem.
>
> If I understand the situation, the SGI compiler attaches a DW_AT_name
> attribute to array types. We don't know whether this behavior occurs
> only in C compilation units, or in C++ compilation units as well.
>
> If the SGI compiler emits bogus names for array types in C++ code too,
> then the same bug will reappear when debugging C++ code, even with
> this patch applied.
>
> I think the change to tag_type_to_type needs to be reverted
> altogether. I understand that it provides substantial savings in
> storage, but it's simply not correct.
I'll revert it.
Okay, but we could still cache symbols and psymbols, that we have a
mangled name for, without any issues, in C++.
We could also cache most types in C++, using the mangled names of the
always existing operator or copy constructor that must be present in
the type, as the hash key.
This won't work for non-structs/classes, but we'll just not cache
them.
Anytime we have a mangled name we can use, we can cache using it,
since it's guaranteed to be unique.
--Dan