@@ -232,16 +232,16 @@ static bool isHeader(StringRef S) {
232232         all_of (Value, [](char  C) { return  llvm::isPrint (C) || C == ' \t '  ; });
233233}
234234
235- static  SmallVector<std::string, 0 > getHeaders () {
235+ static  SmallVector<std::string, 0 > getHeaders (StringRef SymbolName) {
236+   SmallVector<std::string, 0 > Headers;
237+   Headers.emplace_back (" x-fb-debuginfod-symbolname:"   + SymbolName.str ());
236238  const  char  *Filename = getenv (" DEBUGINFOD_HEADERS_FILE"  );
237239  if  (!Filename)
238-     return  {} ;
240+     return  Headers ;
239241  ErrorOr<std::unique_ptr<MemoryBuffer>> HeadersFile =
240242      MemoryBuffer::getFile (Filename, /* IsText=*/ true );
241243  if  (!HeadersFile)
242-     return  {};
243- 
244-   SmallVector<std::string, 0 > Headers;
244+     return  Headers;
245245  uint64_t  LineNumber = 0 ;
246246  for  (StringRef Line : llvm::split ((*HeadersFile)->getBuffer (), ' \n '  )) {
247247    LineNumber++;
@@ -258,6 +258,15 @@ static SmallVector<std::string, 0> getHeaders() {
258258  return  Headers;
259259}
260260
261+ static  llvm::StringRef getSymbolName (StringRef UniqueKey) {
262+   llvm::StringRef SymbolName = UniqueKey;
263+   size_t  pos = UniqueKey.rfind (' -'  );
264+   if  (pos != llvm::StringRef::npos) {
265+     SymbolName = SymbolName.substr (pos + 1 );
266+   }
267+   return  SymbolName;
268+ }
269+ 
261270Expected<std::string> getCachedOrDownloadArtifact (
262271    StringRef UniqueKey, StringRef UrlPath, StringRef CacheDirectoryPath,
263272    ArrayRef<StringRef> DebuginfodUrls, std::chrono::milliseconds Timeout) {
@@ -304,7 +313,7 @@ Expected<std::string> getCachedOrDownloadArtifact(
304313      StreamedHTTPResponseHandler Handler (
305314          [&]() { return  CacheAddStream (Task, " "  ); }, Client);
306315      HTTPRequest Request (ArtifactUrl);
307-       Request.Headers  = getHeaders ();
316+       Request.Headers  = getHeaders (getSymbolName (UniqueKey) );
308317      Error Err = Client.perform (Request, Handler);
309318      if  (Err)
310319        return  std::move (Err);
0 commit comments