================ @@ -112,31 +142,49 @@ SymbolLocator *SymbolLocatorDebuginfod::CreateInstance() { return new SymbolLocatorDebuginfod(); } -static std::optional<FileSpec> GetFileForModule( - const ModuleSpec &module_spec, - std::function<llvm::Expected<std::string>(llvm::object::BuildIDRef)> - PullFromServer) { - if (!ModuleList::GetGlobalModuleListProperties().GetEnableExternalLookup()) - return {}; ++ static std::optional<FileSpec> + + GetFileForModule( + const ModuleSpec &module_spec, + std::function<std::string(llvm::object::BuildID)> UrlBuilder) { const UUID &module_uuid = module_spec.GetUUID(); - if (module_uuid.IsValid() && llvm::canUseDebuginfod()) { - llvm::object::BuildID build_id(module_uuid.GetBytes()); - llvm::Expected<std::string> result = PullFromServer(build_id); - if (result) - return FileSpec(*result); - // An error here should be logged as a failure in the Debuginfod library, - // so just consume it here - consumeError(result.takeError()); - } + // Don't bother if we don't have a valid UUID, Debuginfod isn't available, + // or if the 'symbols.enable-external-lookup' setting is false + if (!module_uuid.IsValid() || !llvm::canUseDebuginfod() || + !ModuleList::GetGlobalModuleListProperties().GetEnableExternalLookup()) + return {}; + + // Grab the settings values we need + PluginProperties &plugin_props = GetGlobalPluginProperties(); + llvm::Expected<llvm::StringRef> CacheDirectoryPathOrErr = + plugin_props.GetCachePath(); + // A cache location is *required* + if (!CacheDirectoryPathOrErr) + return {}; + llvm::StringRef CacheDirectoryPath = *CacheDirectoryPathOrErr; + llvm::SmallVector<llvm::StringRef> DebuginfodUrls = + llvm::getDefaultDebuginfodUrls(); + std::chrono::milliseconds Timeout = plugin_props.GetTimeout(); + + // We're ready to ask the Debuginfod library to find our file + llvm::object::BuildID build_id(module_uuid.GetBytes()); + std::string UrlPath = UrlBuilder(build_id); ---------------- JDevlieghere wrote:
`url_path` https://github.com/llvm/llvm-project/pull/78605 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits