#+OPTIONS: toc:nil date:nil ':t #+TITLE: Debuginfod on Ubuntu #+Author: Sergio Durigan Junior @@latex:\\@@ sergiodj@ubuntu.com #+LANGUAGE: en #+BEAMER_THEME: Rochester #+LaTeX_HEADER: \hypersetup{colorlinks=true,urlcolor=blue} #+LaTeX_HEADER: \lstset{basicstyle=\footnotesize\ttfamily} * What is =debuginfod=? - Started by Red Hat in 2019. - It @@latex:\emph{@@"is a client/server [...] that automatically distributes =ELF= / =DWARF= / source-code from servers to clients such as debuggers across HTTP"@@latex:}@@. - The goal is to replace the need for =.ddeb= files (but it can do more than that). * How does it work? - There's a =debuginfod= server (e.g., at https://debuginfod.ubuntu.com) that indexes all available debug information from supported Ubuntu releases. #+BEAMER: \pause - Debugger-like tools (e.g., =GDB=) link against =libdebuginfod=, which provides the client support. #+BEAMER: \pause - 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=. #+BEAMER: \pause - If found, the server will then transmit the information over HTTP(S) to the client. * How do I use it? :PROPERTIES: :BEAMER_OPT: fragile :END: - =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: #+ATTR_LATEX: :options frame=single #+begin_src bash export DEBUGINFOD_URLS="https://debuginfod.ubuntu.com" #+end_src * 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. * More information - https://ubuntu.com/server/docs/service-debuginfod - https://sourceware.org/elfutils/Debuginfod.html - =sergiodj= @ =libera.chat= - @@latex:\href{mailto:sergiodj@ubuntu.com}{sergiodj@ubuntu.com}@@