dblaikie added a comment.

In D76801#1994003 <https://reviews.llvm.org/D76801#1994003>, @labath wrote:

> In D76801#1993337 <https://reviews.llvm.org/D76801#1993337>, @dblaikie wrote:
>
> > In D76801#1991904 <https://reviews.llvm.org/D76801#1991904>, @labath wrote:
> >
> > > David's example does work with gdb without -Wl,--gdb-index (the member 
> > > variable is shown), presumably due to the aforementioned fuzzy matching. 
> > > However, it does not work if gdb-index is enabled,  nor with lldb (as 
> > > lldb is always very index-oriented and assumes equality everywhere). That 
> > > is definitely not ideal, though I'm not sure that means about this patch. 
> > > This is definitely not the only difference in the formatting of 
> > > DW_AT_names of templates. For example, `template<typename T> 
> > > operator<<(T, T)` will come out as `operator<< <A>` with gcc, but as 
> > > `operator<<<A>` with clang (with or without this patch).
> > >  OTOH, differences in type names are more likely to cause problems than 
> > > is the case for functions/operators.
> >
> >
> > That is concerning. Any idea if that's only with lld's gdb-indexx 
> > implementation, or also gold's?
>
>
> I was using gold for my initial test. However, the same thing happens with 
> lld too...


Good to know! Thanks for checking!

>> This isn't the only naming divergence between GCC and Clang, though, so if 
>> gdb-index doesn't support any divergence, that's a problem...
> 
> It becomes a gdb-index problem because with an index the debugger will do a 
> (hashed?) string lookup and expect the string to be there. If the strings 
> differ, the lookup won't find anything. In the no-index scenario, the 
> debugger has to trawl the debug info itself, and so it has some opportunities 
> to do fuzzy matching.

That surprises me a bit - given that one of the things debuggers provide is 
autocomplete (I'm unlikely to write out a type name exactly as the debug info 
contains it - if two compilers can't agree, it's much less likely that all 
users will agree with any compiler rendering), which I'd have thought would be 
facilitated by the index too - in which case lookup via exact match wouldn't be 
viable, you'd still want a way to list anything with a matching substring (or 
at least prefix), etc. Which could help facilitate lookup fuzzy matching like 
in this sort of case.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D76801/new/

https://reviews.llvm.org/D76801



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to