GDB uses debuginfod_find_debuginfo() to find and download the debug info files. Documentation says:

debuginfod_find_debuginfo(), debuginfod_find_executable(), and debuginfod_find_source()
query the debuginfod server URLs contained in $DEBUGINFOD_URLS
(see below) for the debuginfo ...
...

CACHE
If the query is successful, the debuginfod_find_*() functions save the target
file to a local cache. The location of the cache is controlled by the
$DEBUGINFOD_CACHE_PATH environment variable (see below).
Cleaning of the cache is controlled by the cache_clean_interval_s and
max_unused_age_s files, which are found in the $DEBUGINFOD_CACHE_PATH directory.
cache_clean_interval_s controls how frequently the cache is traversed for cleaning
and max_unused_age_s controls how long a file can go unused
(fstat(2) atime) before it's removed from the cache during cleaning.

So it seems like you are suffering from either too frequent cleaning, or too low max_unused_age_s setting.

And unsetting DEBUGINFOD_URLS in the environment should stop GDB from downloading anything.

Answer from Employed Russian on Stack Overflow
🌐
GNU Project
sourceware.org › gdb › current › onlinedocs › gdb.html › Debuginfod-Settings.html
Debuginfod Settings (Debugging with GDB)
Enable or disable debuginfod-related output. Use a non-zero value to enable and 0 to disable. debuginfod output is shown by default. ... Show the current verbosity setting. ... Set whether GDB can display a progress bar when downloading a file from debuginfod.
🌐
Red Hat
developers.redhat.com › articles › 2022 › 01 › 10 › gdb-developers-gnu-debugger-tutorial-part-2-all-about-debuginfo
The GDB developer’s GNU Debugger tutorial, Part 2: All about debuginfo | Red Hat Developer
August 14, 2023 - set debuginfod enabled on/off/ask: Enables or disables GDB's debuginfod support. If set to ask (the default when debuginfod support is available), GDB will ask the user to confirm the use of debuginfod to download missing debugging information ...
🌐
GNU Project
sourceware.org › gdb › current › onlinedocs › gdb.html › Debuginfod.html
Debuginfod (Debugging with GDB)
With the debuginfod client library, libdebuginfod, GDB can query servers using the build IDs associated with missing debug info, executables and source files in order to download them on demand.
🌐
ArchWiki
wiki.archlinux.org › title › Debuginfod
debuginfod - ArchWiki
March 9, 2026 - You can optionally install the debuginfod package which provides the debuginfod-find(1) utility. This package is required for debuginfod support in delve. Tip See Debugging/Getting traces#Getting the trace for usage with gdb.
🌐
Ubuntu
ubuntu.com › server › docs › how-to › debugging › about-debuginfod
About debuginfod - Ubuntu Server documentation
6 days ago - debuginfod is indexing ddebs packages from all supported Ubuntu releases. Once a release goes unsupported, we stop indexing ddebs from it and eventually stop serving debug symbols for its packages.
🌐
Arch Cloud Labs
archcloudlabs.com › projects › debuginfod
Abusing gdb Features for Data Ingress & Egress · Arch Cloud Labs
October 22, 2023 - The standalone GNU Debugger (gdb) ... As of November 2019, elfutils supports debuginfod, a client/server protocol that enables debuggers (gdb) to fetch debugging symbols via HTTP/HTTPs from a user-specified remote server....
🌐
GitHub
github.com › microsoft › MIEngine › issues › 1142
gdb/debuginfod support for fetching source files · Issue #1142 · microsoft/MIEngine
May 17, 2021 - Modern versions of GDB have learned to use the debuginfod protocol to fetch debuginfo and source files on the fly for programs / shared libraries it is debugging. In the command line version of GDB, this works nicely e.g., in Fedora Rawh...
Author   microsoft
🌐
Debian
wiki.debian.org › Debuginfod
Debuginfod - Debian Wiki
July 15, 2022 - In other words, debuginfod eliminates the need for users to install debuginfo packages in order to debug programs using GDB, systemtap or other tools.
Find elsewhere
🌐
Gentoo Wiki
wiki.gentoo.org › wiki › Debuginfod
debuginfod - Gentoo wiki
February 21, 2026 - libdebuginfod support is enabled by default in gdb and friends because it has few dependencies and allows debugging out-of-the-box. It does not communicate with any hosts by default, nor is it configured with the knowledge of any remote machines. gdb also won't communicate with a debuginfod ...
🌐
GitHub
github.com › schultetwin1 › gdbundle-debuginfod
GitHub - schultetwin1/gdbundle-debuginfod: GDB and LLDB plugins to enable older versions of GDB and LLDB to support debuginfod · GitHub
GDB and LLDB plugins to enable older versions of GDB and LLDB to support debuginfod - schultetwin1/gdbundle-debuginfod
Author   schultetwin1
🌐
Red Hat
developers.redhat.com › blog › 2019 › 10 › 14 › introducing-debuginfod-the-elfutils-debuginfo-server
Introducing debuginfod, the elfutils debuginfo server | Red Hat Developer
July 1, 2020 - We pass the build ID of the target debuginfo file to debuginfod_find_debuginfo(). The function queries debuginfod servers for the file, and if it's successfully retrieved, a file descriptor and path of the local copy of the file are made available to GDB, which opens the file using the Binary File Descriptor (BFD) library and associates it with the corresponding object file that we are attempting to debug.
🌐
Fedora Project
fedoraproject.org › wiki › Debuginfod
Debuginfod - Fedora Project Wiki
% export DEBUGINFOD_MAXTIME=10 # seconds % export DEBUGINFOD_MAXSIZE=10000000 # bytes · Then, enjoy using gdb, stap, perf, eu-stack, and many other debugging-related tools without the interruption of % sudo yum debuginfo-install XYZZY.
🌐
Yocto Project
docs.yoctoproject.org › mickledore › dev-manual › debugging.html
33 Debugging Tools and Techniques — The Yocto Project ® 4.2-tip documentation
root@qemux86-64:~# gdb /bin/cat ... Reading symbols from /bin/cat... Downloading separate debug info for /bin/cat... Reading symbols from /home/root/.cache/debuginfod_client/923dc4780cfbc545850c616bffa884b6b5eaf322/debuginfo...
🌐
Red Hat
developers.redhat.com › articles › 2024 › 01 › 02 › how-lazy-debuginfo-loading-improves-gdb-and-valgrind
How lazy debuginfo loading improves GDB and Valgrind | Red Hat Developer
April 1, 2024 - Debuginfod is an HTTP file server and client library that enables tools to easily download debugging resources, including debuginfo and source files. Debugging tools, including GDB and Valgrind, can use Fedora's public debuginfod server to download ...
🌐
Phoronix
phoronix.com › news › GDB-Debuginfod-Added
GDB Debugger Adds Support For Debuginfod Web Server - Phoronix
February 27, 2020 - Debuginfod is the Red Hat led debug information HTTP web server distributed as part of elfutils and able to supply on-demand source code and ELF/DWARF debug files to debuggers / IDEs / other compiler tooling. The GDB debugger can now tap debuginfod for on-demand source files and debug information ...
🌐
ArchWiki
wiki.archlinux.org › title › Debugging › Getting_traces
Debugging/Getting traces - ArchWiki
Separate debug files are available for most official Arch packages and can be downloaded with Debuginfod (see #Getting the trace). When enhanced debugging information was not added to the executable in the first place, one has to rebuild the package with debugging symbols enabled. Use the complete stack trace to inform developers of a bug you have discovered before. This will be highly appreciated by them and will help to improve your favorite program. The actual backtrace (or stack trace) can be obtained via gdb, the GNU Debugger.
🌐
GNU Project
sourceware.org › gdb › current › onlinedocs › gdb.html › Separate-Debug-Files.html
Separate Debug Files (Debugging with GDB)
For the “build ID” method, GDB ... ID strings are 32 or more hex characters, not 10.) GDB can automatically query debuginfod servers using build IDs in order to download separate debug files that cannot be found locally....