================ @@ -663,6 +663,14 @@ DWARFUnit::GetDIE(dw_offset_t die_offset) { return DWARFDIE(); // Not found } +llvm::StringRef DWARFUnit::PeekDIEName(dw_offset_t die_offset) { + const DWARFDataExtractor &data = GetData(); + DWARFDebugInfoEntry die; + if (!die.Extract(data, this, &die_offset)) + return llvm::StringRef(); + return die.GetName(this); +} ---------------- felipepiovezan wrote:
> One option here is to check if all of the DIEs have been already parsed in > the DWARFUnit and if so, grab the existing DIE, and if it hasn't been parsed > do this. Correct me if I am wrong, but even if we take an already parsed DIE, won't we be doing the exact same thing? It eventually calls `DWARFDebugInfoEntry::GetAttributeValue`, which is a more complicated way of doing the above (but it still creates the extractor, etc...) > This approach doesn't take care of cases where the current DIE doesn't have a > DW_AT_name, but it has a DW_AT_specification or DW_AT_abstract_origin Oh great point, we need this for sure! I will update the implementation and add tests for it https://github.com/llvm/llvm-project/pull/78486 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits