[Lldb-commits] [lldb] [lldb][Expression] Encode Module and DIE UIDs into function AsmLabels (PR #148877)

Michael Buch via lldb-commits lldb-commits at lists.llvm.org
Fri Jul 25 09:20:24 PDT 2025


================
@@ -2471,6 +2471,47 @@ bool SymbolFileDWARF::ResolveFunction(const DWARFDIE &orig_die,
   return false;
 }
 
+llvm::Error
+SymbolFileDWARF::FindAndResolveFunction(SymbolContextList &sc_list,
+                                        llvm::StringRef lookup_name) {
+  std::lock_guard<std::recursive_mutex> guard(GetModuleMutex());
+
+  DWARFDIE die;
+  Module::LookupInfo info(ConstString(lookup_name), lldb::eFunctionNameTypeFull,
----------------
Michael137 wrote:

> encode the declaration DIE, and then when (and if -- I expect that the majority of functions will never be called) we need to resolve the call, we look up the matching definition DIE

Hmm how do we do this without a name lookup? `SymbolFileDWARF::FindDefinitionDIE`?

> Another reason for dropping the linkage names might be to reduce the memory footprint of long asm labels, but if this isn't big, we may want to keep them anyway to help with debugging.

Yea had the same thought. For debugging it has been useful actually. When something goes wrong and you get a `couldn't resolve symbol $__lldb_func:_Z3foov:0x123:0xf00d` having the mangled name there is pretty nice.

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


More information about the lldb-commits mailing list