32 lines · cpp
1//===- llvm/DebugInfod/BuildIDFetcher.cpp - Build ID fetcher --------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8///9/// \file10/// This file defines a DIFetcher implementation for obtaining debug info11/// from debuginfod.12///13//===----------------------------------------------------------------------===//14 15#include "llvm/Debuginfod/BuildIDFetcher.h"16 17#include "llvm/Debuginfod/Debuginfod.h"18 19using namespace llvm;20 21std::optional<std::string>22DebuginfodFetcher::fetch(ArrayRef<uint8_t> BuildID) const {23 if (std::optional<std::string> Path = BuildIDFetcher::fetch(BuildID))24 return std::move(*Path);25 26 Expected<std::string> PathOrErr = getCachedOrDownloadDebuginfo(BuildID);27 if (PathOrErr)28 return *PathOrErr;29 consumeError(PathOrErr.takeError());30 return std::nullopt;31}32