[llvm] [llvm] Add DEBUGINFOD_VERBOSE and log dropped error to stderr (PR #188967)

Stefan Gränitz via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 27 04:22:59 PDT 2026


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

>From 6b9d9a9f8c022afa60f197cd13ffd1b2aa949f1b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Fri, 27 Mar 2026 11:34:51 +0100
Subject: [PATCH 1/2] [llvm] Add DEBUGINFOD_VERBOSE and log dropped error to
 stderr

---
 llvm/lib/Debuginfod/BuildIDFetcher.cpp                    | 6 +++++-
 llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test | 6 +++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/llvm/lib/Debuginfod/BuildIDFetcher.cpp b/llvm/lib/Debuginfod/BuildIDFetcher.cpp
index a7f13104abee1..6cdc6a08bf468 100644
--- a/llvm/lib/Debuginfod/BuildIDFetcher.cpp
+++ b/llvm/lib/Debuginfod/BuildIDFetcher.cpp
@@ -26,6 +26,10 @@ DebuginfodFetcher::fetch(ArrayRef<uint8_t> BuildID) const {
   Expected<std::string> PathOrErr = getCachedOrDownloadDebuginfo(BuildID);
   if (PathOrErr)
     return *PathOrErr;
-  consumeError(PathOrErr.takeError());
+  Error Err = PathOrErr.takeError();
+  if (std::getenv("DEBUGINFOD_VERBOSE"))
+    llvm::errs() << "Debuginfod error: " << Err << "\n";
+  else
+    consumeError(std::move(Err));
   return std::nullopt;
 }
diff --git a/llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test b/llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
index 9b614790694e8..18faa994a67dc 100644
--- a/llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
+++ b/llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
@@ -7,15 +7,15 @@ RUN: rm -rf %t
 RUN: mkdir -p %t/debuginfod-cache
 RUN: %python %S/Inputs/capture_req.py llvm-debuginfod-find --debuginfo 0 \
 RUN:   | FileCheck --check-prefix NO-HEADERS %s
-RUN: env DEBUGINFOD_CACHE=%t/debuginfod-cache DEBUGINFOD_HEADERS_FILE=bad %python %S/Inputs/capture_req.py \
+RUN: env DEBUGINFOD_VERBOSE=1 env DEBUGINFOD_CACHE=%t/debuginfod-cache DEBUGINFOD_HEADERS_FILE=bad %python %S/Inputs/capture_req.py \
 RUN:   llvm-debuginfod-find --debuginfo 0 \
 RUN:   | FileCheck --check-prefix NO-HEADERS %s
 RUN: rm -rf %t/debuginfod-cache/*
-RUN: env DEBUGINFOD_CACHE=%t/debuginfod-cache DEBUGINFOD_HEADERS_FILE=%S/Inputs/headers %python %S/Inputs/capture_req.py \
+RUN: env DEBUGINFOD_VERBOSE=1 env DEBUGINFOD_CACHE=%t/debuginfod-cache DEBUGINFOD_HEADERS_FILE=%S/Inputs/headers %python %S/Inputs/capture_req.py \
 RUN:   llvm-debuginfod-find --debuginfo 0 \
 RUN:   | FileCheck --check-prefix HEADERS %s
 RUN: rm -rf %t/debuginfod-cache/*
-RUN: env DEBUGINFOD_CACHE=%t/debuginfod-cache DEBUGINFOD_HEADERS_FILE=%S/Inputs/headers DEBUGINFOD_URLS=fake not llvm-debuginfod-find --debuginfo 0 2>&1 \
+RUN: env DEBUGINFOD_VERBOSE=1 env DEBUGINFOD_CACHE=%t/debuginfod-cache DEBUGINFOD_HEADERS_FILE=%S/Inputs/headers DEBUGINFOD_URLS=fake not llvm-debuginfod-find --debuginfo 0 2>&1 \
 RUN:   | FileCheck --check-prefix ERR -DHEADER_FILE=%S/Inputs/headers %s
 
 NO-HEADERS:      User-Agent: LLVM-HTTPClient/1.0

>From 772b10e74d29a7d6dd1bd09925fe73a0df51fa1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Fri, 27 Mar 2026 12:19:00 +0100
Subject: [PATCH 2/2] Prefer logAllUnhandledErrors() and and keep consuming it
 unconditionally

---
 llvm/lib/Debuginfod/BuildIDFetcher.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/llvm/lib/Debuginfod/BuildIDFetcher.cpp b/llvm/lib/Debuginfod/BuildIDFetcher.cpp
index 6cdc6a08bf468..7a4ade0f2f4e1 100644
--- a/llvm/lib/Debuginfod/BuildIDFetcher.cpp
+++ b/llvm/lib/Debuginfod/BuildIDFetcher.cpp
@@ -28,8 +28,7 @@ DebuginfodFetcher::fetch(ArrayRef<uint8_t> BuildID) const {
     return *PathOrErr;
   Error Err = PathOrErr.takeError();
   if (std::getenv("DEBUGINFOD_VERBOSE"))
-    llvm::errs() << "Debuginfod error: " << Err << "\n";
-  else
-    consumeError(std::move(Err));
+    logAllUnhandledErrors(std::move(Err), llvm::errs(), "Debuginfod error: ");
+  consumeError(std::move(Err));
   return std::nullopt;
 }



More information about the llvm-commits mailing list