[Lldb-commits] [lldb] Improve type and namespace lookup using parent chain (PR #108907)

via lldb-commits lldb-commits at lists.llvm.org
Sun Sep 22 19:38:39 PDT 2024


================
@@ -402,6 +420,36 @@ bool DebugNamesDWARFIndex::SameParentChain(
   return true;
 }
 
+bool DebugNamesDWARFIndex::WithinParentChain(
+    llvm::ArrayRef<llvm::StringRef> query_parent_names,
+    llvm::ArrayRef<DebugNames::Entry> parent_chain) const {
+  if (parent_chain.size() < query_parent_names.size())
+    return false;
+
+  size_t query_idx = 0, chain_idx = 0;
+  while (query_idx < query_parent_names.size() &&
+         chain_idx < parent_chain.size()) {
+    if (SameAsEntryATName(query_parent_names[query_idx],
+                          parent_chain[chain_idx])) {
+      ++query_idx;
+      ++chain_idx;
+    } else {
+      // Name does not match, try next parent_chain entry if the current entry
+      // is namespace because the current one can be an inline namespace.
----------------
jeffreytan81 wrote:

Cool, did not know godbolt can show dwarfdump output.

`DWARFASTParserClang` identifies namespace DIE with `DW_AT_export_symbols` as inline namespace:
https://github.com/llvm/llvm-project/blob/81c3499531c3fe03827bd8bc890e3a16db9e4c3c/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp#L3472-L3473 

https://github.com/llvm/llvm-project/pull/108907


More information about the lldb-commits mailing list