[Lldb-commits] [lldb] LLDB Debuginfod tests and a fix or two (PR #90622)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Fri May 3 08:30:56 PDT 2024


================
@@ -87,8 +105,15 @@ SymbolVendorELF::CreateInstance(const lldb::ModuleSP &module_sp,
   FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
   FileSpec dsym_fspec =
       PluginManager::LocateExecutableSymbolFile(module_spec, search_paths);
-  if (!dsym_fspec)
-    return nullptr;
+  if (!dsym_fspec || IsDwpSymbolFile(module_sp, dsym_fspec)) {
+    // If we have a stripped binary or if we got a DWP file, we should prefer
+    // symbols in the executable acquired through a plugin.
+    ModuleSpec unstripped_spec =
+        PluginManager::LocateExecutableObjectFile(module_spec);
+    if (!unstripped_spec)
+      return nullptr;
+    dsym_fspec = unstripped_spec.GetFileSpec();
+  }
----------------
DavidSpickett wrote:

We try to allocate memory to JIT the expression and calling `mmap` fails with a signal. In https://github.com/llvm/llvm-project/issues/68987 this was because we had lost the section info that told us whether to call it as Thumb or Arm, if we get that wrong it causes a SIGILL, so it could be the same thing again.

I will look into it more next week and assuming I find a fix, reland the changes for you.

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


More information about the lldb-commits mailing list