https://github.com/clayborg commented:
Let me verify this works. I would also like this to fix: ``` bool DebugNamesDWARFIndex::ProcessEntry( const DebugNames::Entry &entry, llvm::function_ref<bool(DWARFDIE die)> callback) { std::optional<DIERef> ref = ToDIERef(entry); if (!ref) return true; SymbolFileDWARF &dwarf = *llvm::cast<SymbolFileDWARF>( m_module.GetSymbolFile()->GetBackingSymbolFile()); DWARFDIE die = dwarf.GetDIE(*ref); if (!die) return true; // Watch out for forward declarations that appear in the .debug_names tables // only due to being there for a DW_IDX_parent. if (die.GetAttributeValueAsUnsigned(DW_AT_declaration, 0)) return true; return callback(die); } ``` This adds: ``` // Watch out for forward declarations that appear in the .debug_names tables // only due to being there for a DW_IDX_parent. if (die.GetAttributeValueAsUnsigned(DW_AT_declaration, 0)) return true; ``` To the above function to ensure we don't waste any time trying to parse any DIE information for forward declaration when using .debug_names. This will cause a TON of churn on our DWARF parser and cause us to pull in and parse way too much. https://github.com/llvm/llvm-project/pull/91799 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits