From ArchWiki

Debuginfod is a service providing debug information over an HTTP API.


gdb automatically tries to download debug files if the DEBUGINFOD_URLS environment variable is present.

libelf, a dependency of gdb, ships with /etc/profile.d/ and /etc/profile.d/debuginfod.csh scripts that set the variable on login, so there is no need to install additional packages.

You can optionally install the debuginfod package which provides the debuginfod-find(1) utility. This package is required for debuginfod support in delve.


This article or section needs expansion.

Reason: Explain how DEBUGINFOD_URLS is set from /etc/debuginfod/*.urls. (Discuss in Talk:Debuginfod)

The tooling looks for debug symbols on the debuginfod servers specified in the DEBUGINFOD_URLS environment variable. The value is a string of a space separated URLs.

For example:

Tip: One can also use which works as a federated server and queries all available debuginfod servers.

This article or section needs expansion.

Reason: What data is actually fetched? Does it download a debug package and extract it to the user's home directory? (Discuss in Talk:Debuginfod)

This article or section is a candidate for merging with Debugging/Getting traces#Debuginfod.

Notes: Duplicate content. (Discuss in Talk:Debuginfod)

Now a debugger can fetch debug symbols without having to install the appropriate debug package.

$ gdb /usr/bin/i3
Reading symbols from /usr/bin/i3...
Downloading 1.56 MB separate debug info for /usr/bin/i3
Reading symbols from /home/user/.cache/debuginfod_client/29129d26dbe557d2b56daf90327f64f527304dc1/debuginfo...

You can also do for example:

# coredumpctl gdb

And then inside gdb:

bt full

and you will have the debug-symbols of the last crashed app in your system.

See debuginfod-find(1) for usage.

Debugger support

Several debuggers support utilizing debuginfod to find debug symbol and source code listing.

Package Status Notes
gdb Supported
delve Supported
KDE Crash Report Supported
valgrind Supported

See also