https://github.com/weliveindetail updated 
https://github.com/llvm/llvm-project/pull/187687

From ec60e43a6b568c6437d685b1d22487d32721abc8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <[email protected]>
Date: Fri, 20 Mar 2026 11:48:05 +0100
Subject: [PATCH 1/4] [lldb] Hoist StreamedHTTPResponseHandler to SupportHTTP
 and use it in SymbolLocatorSymStore

---
 .../SymStore/SymbolLocatorSymStore.cpp        | 48 ++++++++----------
 .../HTTP/StreamedHTTPResponseHandler.h        | 49 +++++++++++++++++++
 llvm/lib/Debuginfod/Debuginfod.cpp            | 48 +-----------------
 llvm/lib/Support/HTTP/CMakeLists.txt          |  1 +
 .../HTTP/StreamedHTTPResponseHandler.cpp      | 34 +++++++++++++
 5 files changed, 106 insertions(+), 74 deletions(-)
 create mode 100644 llvm/include/llvm/Support/HTTP/StreamedHTTPResponseHandler.h
 create mode 100644 llvm/lib/Support/HTTP/StreamedHTTPResponseHandler.cpp

diff --git 
a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp 
b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
index 884519b54acfd..f1b931d894aa7 100644
--- a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
+++ b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
@@ -18,11 +18,14 @@
 #include "lldb/Utility/UUID.h"
 
 #include "llvm/ADT/StringExtras.h"
+#include "llvm/Support/Caching.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/HTTP/HTTPClient.h"
+#include "llvm/Support/HTTP/StreamedHTTPResponseHandler.h"
 #include "llvm/Support/Path.h"
+#include "llvm/Support/raw_ostream.h"
 
 using namespace lldb;
 using namespace lldb_private;
@@ -114,36 +117,11 @@ std::string formatSymStoreKey(const UUID &uuid) {
   return llvm::toHex(bytes.slice(0, 16), LowerCase) + std::to_string(age);
 }
 
-// This is a simple version of Debuginfod's StreamedHTTPResponseHandler. We
-// should consider reusing that once we introduce caching.
-class FileDownloadHandler : public llvm::HTTPResponseHandler {
-private:
-  std::error_code m_ec;
-  llvm::raw_fd_ostream m_stream;
-
-public:
-  FileDownloadHandler(llvm::StringRef file) : m_stream(file.str(), m_ec) {}
-  virtual ~FileDownloadHandler() = default;
-
-  llvm::Error handleBodyChunk(llvm::StringRef data) override {
-    // Propagate error from ctor.
-    if (m_ec)
-      return llvm::createStringError(m_ec, "Failed to open file for writing");
-    m_stream.write(data.data(), data.size());
-    if (std::error_code ec = m_stream.error())
-      return llvm::createStringError(ec, "Error writing to file");
-
-    return llvm::Error::success();
-  }
-};
-
-llvm::Error downloadFileHTTP(llvm::StringRef url, FileDownloadHandler dest) {
+llvm::Error downloadFileHTTP(llvm::StringRef url, llvm::StringRef destPath) {
   if (!llvm::HTTPClient::isAvailable())
     return llvm::createStringError(
         std::make_error_code(std::errc::not_supported),
         "HTTP client is not available");
-  llvm::HTTPRequest Request(url);
-  Request.FollowRedirects = true;
 
   llvm::HTTPClient Client;
 
@@ -151,7 +129,23 @@ llvm::Error downloadFileHTTP(llvm::StringRef url, 
FileDownloadHandler dest) {
   // connect, send and receive.
   Client.setTimeout(std::chrono::seconds(60));
 
-  if (llvm::Error Err = Client.perform(Request, dest))
+  llvm::StreamedHTTPResponseHandler Handler(
+      [&]() -> llvm::Expected<std::unique_ptr<llvm::CachedFileStream>> {
+        std::error_code EC;
+        auto FDStream = std::make_unique<llvm::raw_fd_ostream>(destPath, EC);
+        if (EC)
+          return llvm::createStringError(EC, "Failed to open file for 
writing");
+        return std::make_unique<llvm::CachedFileStream>(std::move(FDStream),
+                                                        destPath.str());
+      },
+      Client);
+
+  llvm::HTTPRequest Request(url);
+  Request.FollowRedirects = true;
+
+  if (llvm::Error Err = Client.perform(Request, Handler))
+    return Err;
+  if (llvm::Error Err = Handler.commit())
     return Err;
 
   unsigned ResponseCode = Client.responseCode();
diff --git a/llvm/include/llvm/Support/HTTP/StreamedHTTPResponseHandler.h 
b/llvm/include/llvm/Support/HTTP/StreamedHTTPResponseHandler.h
new file mode 100644
index 0000000000000..14ffab8aa1be3
--- /dev/null
+++ b/llvm/include/llvm/Support/HTTP/StreamedHTTPResponseHandler.h
@@ -0,0 +1,49 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// An HTTPResponseHandler that streams the response body to a 
CachedFileStream.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_HTTP_STREAMEDHTTPRESPONSEHANDLER_H
+#define LLVM_SUPPORT_HTTP_STREAMEDHTTPRESPONSEHANDLER_H
+
+#include "llvm/Support/Caching.h"
+#include "llvm/Support/Error.h"
+#include "llvm/Support/HTTP/HTTPClient.h"
+#include <functional>
+#include <memory>
+
+namespace llvm {
+
+/// A handler which streams the returned data to a CachedFileStream. The cache
+/// file is only created if a 200 OK status is observed.
+class StreamedHTTPResponseHandler : public HTTPResponseHandler {
+  using CreateStreamFn =
+      std::function<Expected<std::unique_ptr<CachedFileStream>>()>;
+  CreateStreamFn CreateStream;
+  HTTPClient &Client;
+  std::unique_ptr<CachedFileStream> FileStream;
+
+public:
+  StreamedHTTPResponseHandler(CreateStreamFn CreateStream, HTTPClient &Client)
+      : CreateStream(std::move(CreateStream)), Client(Client) {}
+
+  /// Must be called exactly once after the writes have been completed
+  /// but before the StreamedHTTPResponseHandler object is destroyed.
+  Error commit();
+
+  virtual ~StreamedHTTPResponseHandler() = default;
+
+  Error handleBodyChunk(StringRef BodyChunk) override;
+};
+
+} // end namespace llvm
+
+#endif // LLVM_SUPPORT_HTTP_STREAMEDHTTPRESPONSEHANDLER_H
diff --git a/llvm/lib/Debuginfod/Debuginfod.cpp 
b/llvm/lib/Debuginfod/Debuginfod.cpp
index 6847dc092dfdb..77de51d90a4eb 100644
--- a/llvm/lib/Debuginfod/Debuginfod.cpp
+++ b/llvm/lib/Debuginfod/Debuginfod.cpp
@@ -35,6 +35,7 @@
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FileUtilities.h"
 #include "llvm/Support/HTTP/HTTPClient.h"
+#include "llvm/Support/HTTP/StreamedHTTPResponseHandler.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/Path.h"
 #include "llvm/Support/ThreadPool.h"
@@ -174,53 +175,6 @@ Expected<std::string> 
getCachedOrDownloadArtifact(StringRef UniqueKey,
                                      getDefaultDebuginfodTimeout());
 }
 
-namespace {
-
-/// A simple handler which streams the returned data to a cache file. The cache
-/// file is only created if a 200 OK status is observed.
-class StreamedHTTPResponseHandler : public HTTPResponseHandler {
-  using CreateStreamFn =
-      std::function<Expected<std::unique_ptr<CachedFileStream>>()>;
-  CreateStreamFn CreateStream;
-  HTTPClient &Client;
-  std::unique_ptr<CachedFileStream> FileStream;
-
-public:
-  StreamedHTTPResponseHandler(CreateStreamFn CreateStream, HTTPClient &Client)
-      : CreateStream(CreateStream), Client(Client) {}
-
-  /// Must be called exactly once after the writes have been completed
-  /// but before the StreamedHTTPResponseHandler object is destroyed.
-  Error commit();
-
-  virtual ~StreamedHTTPResponseHandler() = default;
-
-  Error handleBodyChunk(StringRef BodyChunk) override;
-};
-
-} // namespace
-
-Error StreamedHTTPResponseHandler::handleBodyChunk(StringRef BodyChunk) {
-  if (!FileStream) {
-    unsigned Code = Client.responseCode();
-    if (Code && Code != 200)
-      return Error::success();
-    Expected<std::unique_ptr<CachedFileStream>> FileStreamOrError =
-        CreateStream();
-    if (!FileStreamOrError)
-      return FileStreamOrError.takeError();
-    FileStream = std::move(*FileStreamOrError);
-  }
-  *FileStream->OS << BodyChunk;
-  return Error::success();
-}
-
-Error StreamedHTTPResponseHandler::commit() {
-  if (FileStream)
-    return FileStream->commit();
-  return Error::success();
-}
-
 // An over-accepting simplification of the HTTP RFC 7230 spec.
 static bool isHeader(StringRef S) {
   StringRef Name;
diff --git a/llvm/lib/Support/HTTP/CMakeLists.txt 
b/llvm/lib/Support/HTTP/CMakeLists.txt
index e7a0e6fe34110..f8e4b87539931 100644
--- a/llvm/lib/Support/HTTP/CMakeLists.txt
+++ b/llvm/lib/Support/HTTP/CMakeLists.txt
@@ -16,6 +16,7 @@ endif()
 add_llvm_component_library(LLVMSupportHTTP
   HTTPClient.cpp
   HTTPServer.cpp
+  StreamedHTTPResponseHandler.cpp
 
   LINK_LIBS
   ${imported_libs}
diff --git a/llvm/lib/Support/HTTP/StreamedHTTPResponseHandler.cpp 
b/llvm/lib/Support/HTTP/StreamedHTTPResponseHandler.cpp
new file mode 100644
index 0000000000000..5a0e0e6355684
--- /dev/null
+++ b/llvm/lib/Support/HTTP/StreamedHTTPResponseHandler.cpp
@@ -0,0 +1,34 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Support/HTTP/StreamedHTTPResponseHandler.h"
+
+namespace llvm {
+
+Error StreamedHTTPResponseHandler::handleBodyChunk(StringRef BodyChunk) {
+  if (!FileStream) {
+    unsigned Code = Client.responseCode();
+    if (Code && Code != 200)
+      return Error::success();
+    Expected<std::unique_ptr<CachedFileStream>> FileStreamOrError =
+        CreateStream();
+    if (!FileStreamOrError)
+      return FileStreamOrError.takeError();
+    FileStream = std::move(*FileStreamOrError);
+  }
+  *FileStream->OS << BodyChunk;
+  return Error::success();
+}
+
+Error StreamedHTTPResponseHandler::commit() {
+  if (FileStream)
+    return FileStream->commit();
+  return Error::success();
+}
+
+} // namespace llvm

From c3d5adb2572143516ec4824d037c3f2f1722f017 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <[email protected]>
Date: Fri, 20 Mar 2026 12:20:23 +0100
Subject: [PATCH 2/4] Handle file not found separately and print warnings for
 failures

---
 .../SymStore/SymbolLocatorSymStore.cpp        | 93 ++++++++++---------
 lldb/test/API/symstore/TestSymStore.py        | 11 +++
 2 files changed, 59 insertions(+), 45 deletions(-)

diff --git 
a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp 
b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
index f1b931d894aa7..02c568816f706 100644
--- a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
+++ b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
@@ -117,47 +117,6 @@ std::string formatSymStoreKey(const UUID &uuid) {
   return llvm::toHex(bytes.slice(0, 16), LowerCase) + std::to_string(age);
 }
 
-llvm::Error downloadFileHTTP(llvm::StringRef url, llvm::StringRef destPath) {
-  if (!llvm::HTTPClient::isAvailable())
-    return llvm::createStringError(
-        std::make_error_code(std::errc::not_supported),
-        "HTTP client is not available");
-
-  llvm::HTTPClient Client;
-
-  // TODO: Since PDBs can be huge, we should distinguish between resolve,
-  // connect, send and receive.
-  Client.setTimeout(std::chrono::seconds(60));
-
-  llvm::StreamedHTTPResponseHandler Handler(
-      [&]() -> llvm::Expected<std::unique_ptr<llvm::CachedFileStream>> {
-        std::error_code EC;
-        auto FDStream = std::make_unique<llvm::raw_fd_ostream>(destPath, EC);
-        if (EC)
-          return llvm::createStringError(EC, "Failed to open file for 
writing");
-        return std::make_unique<llvm::CachedFileStream>(std::move(FDStream),
-                                                        destPath.str());
-      },
-      Client);
-
-  llvm::HTTPRequest Request(url);
-  Request.FollowRedirects = true;
-
-  if (llvm::Error Err = Client.perform(Request, Handler))
-    return Err;
-  if (llvm::Error Err = Handler.commit())
-    return Err;
-
-  unsigned ResponseCode = Client.responseCode();
-  if (ResponseCode != 200) {
-    return llvm::createStringError(std::make_error_code(std::errc::io_error),
-                                   "HTTP request failed with status code " +
-                                       std::to_string(ResponseCode));
-  }
-
-  return llvm::Error::success();
-}
-
 bool has_unsafe_characters(llvm::StringRef s) {
   for (unsigned char c : s) {
     // RFC 3986 unreserved characters are safe for file names and URLs.
@@ -210,13 +169,57 @@ requestFileFromSymStoreServerHTTP(llvm::StringRef 
base_url, llvm::StringRef key,
   // Server has same directory structure with forward slashes as separators.
   std::string source_url =
       llvm::formatv("{0}/{1}/{2}/{1}", base_url, pdb_name, key);
-  if (llvm::Error err = downloadFileHTTP(source_url, cache_file.str())) {
-    LLDB_LOG_ERROR(log, std::move(err),
-                   "Failed to download from SymStore '{1}': {0}", source_url);
+
+  if (!llvm::HTTPClient::isAvailable()) {
+    Debugger::ReportWarning("HTTP client is not available");
+    return {};
+  }
+
+  llvm::HTTPClient Client;
+  // TODO: Since PDBs can be huge, we should distinguish between resolve,
+  // connect, send and receive.
+  Client.setTimeout(std::chrono::seconds(60));
+
+  llvm::StreamedHTTPResponseHandler Handler(
+      [dest = cache_file.str().str()]()
+          -> llvm::Expected<std::unique_ptr<llvm::CachedFileStream>> {
+        std::error_code EC;
+        auto FDStream = std::make_unique<llvm::raw_fd_ostream>(dest, EC);
+        if (EC)
+          return llvm::createStringError(EC, "Failed to open file for 
writing");
+        return std::make_unique<llvm::CachedFileStream>(std::move(FDStream),
+                                                        dest);
+      },
+      Client);
+
+  llvm::HTTPRequest Request(source_url);
+  Request.FollowRedirects = true;
+
+  if (llvm::Error Err = Client.perform(Request, Handler)) {
+    Debugger::ReportWarning(
+        llvm::formatv("Failed to download from SymStore '{0}': {1}", 
source_url,
+                      llvm::toString(std::move(Err))));
+    return {};
+  }
+  if (llvm::Error Err = Handler.commit()) {
+    Debugger::ReportWarning(
+        llvm::formatv("Failed to download from SymStore '{0}': {1}", 
source_url,
+                      llvm::toString(std::move(Err))));
     return {};
   }
 
-  return FileSpec(cache_file.str());
+  unsigned ResponseCode = Client.responseCode();
+  switch (ResponseCode) {
+  case 404:
+    return {}; // file not found
+  case 200:
+    return FileSpec(cache_file.str()); // success
+  default:
+    Debugger::ReportWarning(llvm::formatv(
+        "Failed to download from SymStore '{0}': response code {1}", 
source_url,
+        ResponseCode));
+    return {};
+  }
 }
 
 std::optional<FileSpec> findFileInLocalSymStore(llvm::StringRef root_dir,
diff --git a/lldb/test/API/symstore/TestSymStore.py 
b/lldb/test/API/symstore/TestSymStore.py
index 13d0cc1666c84..63f7f10a13de7 100644
--- a/lldb/test/API/symstore/TestSymStore.py
+++ b/lldb/test/API/symstore/TestSymStore.py
@@ -140,6 +140,17 @@ def test_local_dir(self):
             self.runCmd(f"settings set plugin.symbol-locator.symstore.urls 
{dir}")
             self.try_breakpoint(exe, should_have_loc=True)
 
+    def test_http_not_found(self):
+        """
+        Check that a 404 response from an HTTP SymStore is handled gracefully.
+        """
+        exe, sym = self.build_inferior()
+        with MockedSymStore(self, exe, sym) as symstore_dir:
+            os.makedirs(f"{symstore_dir}_empty", exist_ok=False)
+            with HTTPServer(f"{symstore_dir}_empty") as url:
+                self.runCmd(f"settings set plugin.symbol-locator.symstore.urls 
{url}")
+                self.try_breakpoint(exe, should_have_loc=False)
+
     # TODO: Add test coverage for common HTTPS security scenarios, e.g. 
self-signed
     # certs, non-HTTPS redirects, etc.
     def test_http(self):

From 8fb6b57cf02617200b28beea2cc0f765ee8bc617 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <[email protected]>
Date: Fri, 20 Mar 2026 15:56:16 +0100
Subject: [PATCH 3/4] Minor fixes

---
 .../SymbolLocator/SymStore/SymbolLocatorSymStore.cpp      | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git 
a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp 
b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
index 02c568816f706..7c2b4459ffcb7 100644
--- a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
+++ b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
@@ -133,14 +133,12 @@ bool has_unsafe_characters(llvm::StringRef s) {
   return s == "." || s == "..";
 }
 
-// TODO: This is a dump initial implementation: It always downloads the file, 
it
-// doesn't validate the result, it doesn't employ proper buffering for large
-// files.
+// TODO: This is a dump initial implementation: It always downloads the file 
and
+// doesn't validate the result.
 std::optional<FileSpec>
 requestFileFromSymStoreServerHTTP(llvm::StringRef base_url, llvm::StringRef 
key,
                                   llvm::StringRef pdb_name) {
   using namespace llvm::sys;
-  Log *log = GetLog(LLDBLog::Symbols);
 
   // Make sure URL will be valid, portable, and compatible with symbol servers.
   if (has_unsafe_characters(pdb_name)) {
@@ -193,8 +191,6 @@ requestFileFromSymStoreServerHTTP(llvm::StringRef base_url, 
llvm::StringRef key,
       Client);
 
   llvm::HTTPRequest Request(source_url);
-  Request.FollowRedirects = true;
-
   if (llvm::Error Err = Client.perform(Request, Handler)) {
     Debugger::ReportWarning(
         llvm::formatv("Failed to download from SymStore '{0}': {1}", 
source_url,

From 39ae9a78d61ebfb387fe26918990bea10ab2f0c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <[email protected]>
Date: Fri, 27 Mar 2026 09:54:12 +0100
Subject: [PATCH 4/4] Style fixes

---
 .../SymStore/SymbolLocatorSymStore.cpp        | 65 +++++++++----------
 1 file changed, 32 insertions(+), 33 deletions(-)

diff --git 
a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp 
b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
index 7c2b4459ffcb7..394589b0394fc 100644
--- a/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
+++ b/lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
@@ -110,14 +110,14 @@ namespace {
 // SymStore key is a string with no separators and age as decimal:
 //   12345678123456789ABCDEF0123456781
 //
-std::string formatSymStoreKey(const UUID &uuid) {
+std::string FormatSymStoreKey(const UUID &uuid) {
   llvm::ArrayRef<uint8_t> bytes = uuid.GetBytes();
   uint32_t age = llvm::support::endian::read32be(bytes.data() + 16);
-  constexpr bool LowerCase = false;
-  return llvm::toHex(bytes.slice(0, 16), LowerCase) + std::to_string(age);
+  constexpr bool lower_case = false;
+  return llvm::toHex(bytes.slice(0, 16), lower_case) + std::to_string(age);
 }
 
-bool has_unsafe_characters(llvm::StringRef s) {
+bool HasUnsafeCharacters(llvm::StringRef s) {
   for (unsigned char c : s) {
     // RFC 3986 unreserved characters are safe for file names and URLs.
     if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') ||
@@ -133,17 +133,17 @@ bool has_unsafe_characters(llvm::StringRef s) {
   return s == "." || s == "..";
 }
 
-// TODO: This is a dump initial implementation: It always downloads the file 
and
+// TODO: This is a dumb initial implementation: It always downloads the file 
and
 // doesn't validate the result.
 std::optional<FileSpec>
-requestFileFromSymStoreServerHTTP(llvm::StringRef base_url, llvm::StringRef 
key,
+RequestFileFromSymStoreServerHTTP(llvm::StringRef base_url, llvm::StringRef 
key,
                                   llvm::StringRef pdb_name) {
   using namespace llvm::sys;
 
   // Make sure URL will be valid, portable, and compatible with symbol servers.
-  if (has_unsafe_characters(pdb_name)) {
+  if (HasUnsafeCharacters(pdb_name)) {
     Debugger::ReportWarning(llvm::formatv(
-        "Rejecting HTTP lookup for PDB file due to unsafe characters in "
+        "rejecting HTTP lookup for PDB file due to unsafe characters in "
         "name: {0}",
         pdb_name));
     return {};
@@ -152,13 +152,13 @@ requestFileFromSymStoreServerHTTP(llvm::StringRef 
base_url, llvm::StringRef key,
   // Construct the path for local storage. Configurable cache coming soon.
   llvm::SmallString<128> cache_file;
   if (!path::cache_directory(cache_file)) {
-    Debugger::ReportWarning("Failed to determine cache directory for 
SymStore");
+    Debugger::ReportWarning("failed to determine cache directory for 
SymStore");
     return {};
   }
   path::append(cache_file, "lldb", "SymStore", pdb_name, key);
   if (std::error_code ec = fs::create_directories(cache_file)) {
     Debugger::ReportWarning(
-        llvm::formatv("Failed to create cache directory '{0}': {1}", 
cache_file,
+        llvm::formatv("failed to create cache directory '{0}': {1}", 
cache_file,
                       ec.message()));
     return {};
   }
@@ -173,52 +173,51 @@ requestFileFromSymStoreServerHTTP(llvm::StringRef 
base_url, llvm::StringRef key,
     return {};
   }
 
-  llvm::HTTPClient Client;
+  llvm::HTTPClient client;
   // TODO: Since PDBs can be huge, we should distinguish between resolve,
   // connect, send and receive.
-  Client.setTimeout(std::chrono::seconds(60));
+  client.setTimeout(std::chrono::seconds(60));
 
   llvm::StreamedHTTPResponseHandler Handler(
       [dest = cache_file.str().str()]()
           -> llvm::Expected<std::unique_ptr<llvm::CachedFileStream>> {
-        std::error_code EC;
-        auto FDStream = std::make_unique<llvm::raw_fd_ostream>(dest, EC);
-        if (EC)
-          return llvm::createStringError(EC, "Failed to open file for 
writing");
-        return std::make_unique<llvm::CachedFileStream>(std::move(FDStream),
-                                                        dest);
+        std::error_code ec;
+        auto os = std::make_unique<llvm::raw_fd_ostream>(dest, ec);
+        if (ec)
+          return llvm::createStringError(ec, "Failed to open file for 
writing");
+        return std::make_unique<llvm::CachedFileStream>(std::move(os), dest);
       },
-      Client);
+      client);
 
-  llvm::HTTPRequest Request(source_url);
-  if (llvm::Error Err = Client.perform(Request, Handler)) {
+  llvm::HTTPRequest request(source_url);
+  if (llvm::Error Err = client.perform(request, Handler)) {
     Debugger::ReportWarning(
-        llvm::formatv("Failed to download from SymStore '{0}': {1}", 
source_url,
+        llvm::formatv("failed to download from SymStore '{0}': {1}", 
source_url,
                       llvm::toString(std::move(Err))));
     return {};
   }
   if (llvm::Error Err = Handler.commit()) {
     Debugger::ReportWarning(
-        llvm::formatv("Failed to download from SymStore '{0}': {1}", 
source_url,
+        llvm::formatv("failed to download from SymStore '{0}': {1}", 
source_url,
                       llvm::toString(std::move(Err))));
     return {};
   }
 
-  unsigned ResponseCode = Client.responseCode();
-  switch (ResponseCode) {
+  unsigned responseCode = client.responseCode();
+  switch (responseCode) {
   case 404:
     return {}; // file not found
   case 200:
     return FileSpec(cache_file.str()); // success
   default:
     Debugger::ReportWarning(llvm::formatv(
-        "Failed to download from SymStore '{0}': response code {1}", 
source_url,
-        ResponseCode));
+        "failed to download from SymStore '{0}': response code {1}", 
source_url,
+        responseCode));
     return {};
   }
 }
 
-std::optional<FileSpec> findFileInLocalSymStore(llvm::StringRef root_dir,
+std::optional<FileSpec> FindFileInLocalSymStore(llvm::StringRef root_dir,
                                                 llvm::StringRef key,
                                                 llvm::StringRef pdb_name) {
   llvm::SmallString<256> path;
@@ -230,16 +229,16 @@ std::optional<FileSpec> 
findFileInLocalSymStore(llvm::StringRef root_dir,
   return spec;
 }
 
-std::optional<FileSpec> locateSymStoreEntry(llvm::StringRef base_url,
+std::optional<FileSpec> LocateSymStoreEntry(llvm::StringRef base_url,
                                             llvm::StringRef key,
                                             llvm::StringRef pdb_name) {
   if (base_url.starts_with("http://";) || base_url.starts_with("https://";))
-    return requestFileFromSymStoreServerHTTP(base_url, key, pdb_name);
+    return RequestFileFromSymStoreServerHTTP(base_url, key, pdb_name);
 
   if (base_url.starts_with("file://"))
     base_url = base_url.drop_front(7);
 
-  return findFileInLocalSymStore(base_url, key, pdb_name);
+  return FindFileInLocalSymStore(base_url, key, pdb_name);
 }
 
 } // namespace
@@ -267,10 +266,10 @@ std::optional<FileSpec> 
SymbolLocatorSymStore::LocateExecutableSymbolFile(
     return {};
   }
 
-  std::string key = formatSymStoreKey(uuid);
+  std::string key = FormatSymStoreKey(uuid);
   Args sym_store_urls = GetGlobalPluginProperties().GetURLs();
   for (const Args::ArgEntry &url : sym_store_urls) {
-    if (auto spec = locateSymStoreEntry(url.ref(), key, pdb_name)) {
+    if (auto spec = LocateSymStoreEntry(url.ref(), key, pdb_name)) {
       LLDB_LOG_VERBOSE(log, "Found {0} in SymStore {1}", pdb_name, url.ref());
       return *spec;
     }

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to