debuginfod-ubuntu-summit-2022/debuginfod-us.org

2.1 KiB

Debuginfod on Ubuntu

What is debuginfod?

  • Started by Red Hat in 2019.
  • It "is a client/server […] that automatically distributes ELF / DWARF / source-code from servers to clients such as debuggers across HTTP".
  • The goal is to replace the need for .ddeb files (but it can do more than that).

How does it work?

  • Debugger-like tools (e.g., GDB) link against libdebuginfod, which provides the client support.
  • When the tool needs a certain debuginfo, it will contact the debuginfod server (specified via the DEBUGINFOD_URLS shell variable) and put a request for the debuginfo's Build-ID.
  • If found, the server will then transmit the information over HTTP(S) to the client.

How do I use it?

  • GDB on Jammy and Kinetic support using debuginfod to fetch debug information.
  • From Kinetic onward, there is no need for manual intervention: the system will automatically use Ubuntu's debuginfod service.
  • On Jammy, you can configure your system to use the service by doing:
export DEBUGINFOD_URLS="https://debuginfod.ubuntu.com"

Demo

  • Fasten your seat belts, please.

Future plans

  • Work on source code indexing (more demo!).
  • Index debug information from other producers (snaps, special PPAs).
  • Provide debuginfod-capable GDBs via -backports to previous supported Ubuntu releases.