dwblaikie wrote: > "std::ios_base" is forward declared and it contains typedefs whose entries in > the .debug_names table will point to the DIE at offset 0x0090cdd5. These > entries cause our type lookups to try and parse a TON of forward declarations > and waste time and resources. > > This fix makes sure when/if we find an entry in the .debug_names table, we > don't process it if it has a DW_AT_declaration(true) attribute.
To come back to this - the table consists of buckets, buckets (a list of indexes into a hash table, one hash per string), then a string table (string offsets into .debug_str and entry offsets). The entry offsets point into the entry pool which is where the tag and DW_IDX values are. Each string entry points to a sequence of index entries, terminated by a zero abbrev code. But there can be index entries that aren't referenced by string entries - they could appear anywhere in the entry pool, just not in a sequence pointed to by a name entry (because if they were there, they'd be included in that string's entries). https://github.com/llvm/llvm-project/pull/91808 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits