On Tue, 8 May 2018 at 18:27, via lldb-commits <lldb-commits@lists.llvm.org> wrote:
> Clang can control the emission of <params> or not in the name, using the "debugger tuning" feature. It sounds like neither LLDB nor PS4 will mind losing the <params> in the name, and it makes the indexing simpler. If the tuning is set for GDB then we can still emit the <params> in the names. > It would make me uncomfortable to have the index and the actual DWARF be inconsistent, but given the way templates work in general (a variety of spellings all refer to the same type) it is probably better to use the un-decorated name in the index even if the DWARF itself used decorated names. This should probably be proposed as a revision for DWARF 6. > --paulr I just ran into this sort of an inconsistency issue while working on the DWARFVerifier. I hope I don't end up hijacking the thread, but I thought I'd write here as it is related to the above issue and all interested parties are following this thread already. Background: In D45323 I added code which (among other things) checks that the names in the index match the debug_info names. Because the implementation had a bug (I forgot to do a ++NumErrors), the error only surfaced when I committed D46583 (which added the missing increment). Anyway, the issue is that the PS4 targets don't emit DW_AT_linkage_name attributes in the debug info, but we are still emitting an index entry with the mangled names. This caused the verifier to complain. Two interesting questions follow from this: 1. (mainly for Paul, I guess) Should we fix the debug_names generator to not emit the linkage name index entry for PS4 targets? 2. (for everyone) Is this verifier check actually valid? This depending on the interpretation of the last (non-normative) paragraph of Section 6.1.1.1 (*). One way of reading it is that a producer is allowed to insert additional entries into the name index. Another would be that we can also insert additional names for existing entries. This is interesting here because this is exactly what the the template stripping proposal would do (add extra names to existing entries). If we don't remove that check, it will cause the verifier to complain again. regards pavel (*) The intent of the above rules is to provide the consumer with some assurance that looking up an unqualified name in the index will yield all relevant debugging information entries that provide a defining declaration at global scope for that name. A producer may choose to implement additional rules for what names are placed in the index, and may communicate those rules to a cooperating consumer via an augmentation string, described below. _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits