[Lldb-commits] [PATCH] D97786: LLDB: Use path relative to binary, not relative to debugger CWD, for finding .dwo files.

Caroline Tice via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Mar 2 11:04:59 PST 2021


cmtice updated this revision to Diff 327523.
cmtice added a comment.

Upload the correct patch this time. (sorry!)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97786/new/

https://reviews.llvm.org/D97786

Files:
  lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp


Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
===================================================================
--- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -1639,6 +1639,18 @@
       return nullptr;
 
     dwo_file.SetFile(comp_dir, FileSpec::Style::native);
+    if (dwo_file.IsRelative()) {
+      // if DW_AT_comp_dir is relative, it should be relative to the location
+      // of the executable, not to the location from which the debugger was
+      // launched.
+      ModuleSpec module_spec;
+      module_spec.GetFileSpec() = m_objfile_sp->GetFileSpec();
+      module_spec.GetSymbolFileSpec() =
+          FileSpec(m_objfile_sp->GetModule()->GetFileSpec().GetPath());
+      llvm::StringRef exe_dir =
+          module_spec.GetFileSpec().GetDirectory().GetStringRef();
+      dwo_file.PrependPathComponent(exe_dir);
+    }
     FileSystem::Instance().Resolve(dwo_file);
     dwo_file.AppendPathComponent(dwo_name);
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97786.327523.patch
Type: text/x-patch
Size: 1031 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20210302/4f7f14e7/attachment-0001.bin>


More information about the lldb-commits mailing list