dev-manual/common-tasks.rst: correct the documentation for debuginfod

Particularly,
- correctly describe the use of DEBUGINFOD_URLS; drop it from bitbake variables
- all necessary component tweaks are enabled by default via DISTRO_FEATURES
- provide on-target examples of what to look for when things work properly

(From yocto-docs rev: 6d5d568d427b22675b999f94ead829ab1bef0b21)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Reviewed-by: Quentin Schulz <foss@0leil.net>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2021-04-26 12:42:10 +02:00
committed by Richard Purdie
parent f353ba0ec2
commit e1ebdcff7c
2 changed files with 24 additions and 22 deletions

View File

@@ -9705,39 +9705,47 @@ methods you can use: running a debuginfod server and using gdbserver.
Using the debuginfod server method
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"debuginfod" from "elfutils" is a way to distribute "debuginfo" files.
Running a "debuginfod" server makes debug symbols readily available,
``debuginfod`` from ``elfutils`` is a way to distribute ``debuginfo`` files.
Running a ``debuginfod`` server makes debug symbols readily available,
which means you don't need to download debugging information
and the binaries of the process being debugged. You can just fetch
debug symbols from the server.
To run a debuginfod server, you need to do the following:
To run a ``debuginfod`` server, you need to do the following:
- Ensure that this variable is set in your ``local.conf`` file::
- Ensure that ``debuginfod`` is present in :term:`DISTRO_FEATURES`
(it already is in ``OpenEmbedded-core`` defaults and ``poky`` reference distribution).
If not, set in your distro config file or in ``local.conf``::
PACKAGECONFIG_pn-elfutils-native = "debuginfod libdebuginfod"
DISTRO_FEATURES_append = " debuginfod"
This :term:`PACKAGECONFIG` option enables debuginfod and libdebuginfod for
"elfutils-native".
This distro feature enables the server and client library in ``elfutils``,
and enables ``debuginfod`` support in clients (at the moment, ``gdb`` and ``binutils``).
- Run the following commands to set up the "debuginfod" server::
- Run the following commands to launch the ``debuginfod`` server on the host::
$ oe-debuginfod
- To use ``debuginfod`` on the target, you need to know the ip:port where
``debuginfod`` is listening on the host (port defaults to 8002), and export
that into the shell environment, for example in ``qemu``::
To use debuginfod on the target, you need the following:
root@qemux86-64:~# export DEBUGINFOD_URLS="http://192.168.7.1:8002/"
- Ensure that this variable is set in your ``local.conf`` file::
- Then debug info fetching should simply work when running the target ``gdb``,
``readelf`` or ``objdump``, for example::
DEBUGINFOD_URLS = "http://localhost:8002/"
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...
This :term:`DEBUGINFOD_URLS` option does the client configuration.
- It's also possible to use ``debuginfod-find`` to just query the server::
::
root@qemux86-64:~# debuginfod-find debuginfo /bin/ls
/home/root/.cache/debuginfod_client/356edc585f7f82d46f94fcb87a86a3fe2d2e60bd/debuginfo
PACKAGECONFIG_pn-gdb = "debuginfod"
This :term:`PACKAGECONFIG` option enables "debuginfod" for "gdb".
Using the gdbserver method
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -1523,12 +1523,6 @@ system and gives an overview of their function and contents.
DEBIANNAME_${PN} = "dbus-1"
:term:`DEBUGINFOD_URLS`
Points to the URL of the "debuginfod" server. Such that for every
debugging information lookup, the debuginfod client will query the
server and return the requested information. You set this variable
in your ``local.conf`` file.
:term:`DEBUG_BUILD`
Specifies to build packages with debugging information. This
influences the value of the ``SELECTED_OPTIMIZATION`` variable.