================ @@ -1742,20 +1742,37 @@ SymbolFileDWARF::GetDwoSymbolFileForCompileUnit( if (std::shared_ptr<SymbolFileDWARFDwo> dwp_sp = GetDwpSymbolFile()) return dwp_sp; - FileSpec dwo_file(dwo_name); - FileSystem::Instance().Resolve(dwo_file); - bool found = false; + const char *comp_dir = + cu_die.GetAttributeValueAsString(dwarf_cu, DW_AT_comp_dir, nullptr); + + // Try locating the dwo via the callback first. + FileSpec dwo_file; + SymbolFile::LocateDwoCallback locate_dwo_callback = + SymbolFile::GetLocateDwoCallback(); + if (locate_dwo_callback) { + const FileSpec &objfile_spec = m_objfile_sp->GetFileSpec(); + Status error = locate_dwo_callback(objfile_spec, dwo_name, comp_dir, + dwarf_cu->GetDWOId().value(), dwo_file); + if (error.Fail()) { + GetObjectFile()->GetModule()->ReportWarning( + "locate DWO callback failed with error: {0}", + error.AsCString("unknown error")); + } ---------------- clayborg wrote:
I don't know if we should report a warning every time we fail to find a .dwo file. Probably best to use an appropriate log channel for this. https://github.com/llvm/llvm-project/pull/69517 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits