From 6c9829385ecf78d3dae295cf8a010197d0f87327 Mon Sep 17 00:00:00 2001 From: Dorinda Date: Tue, 2 Mar 2021 18:06:51 +0100 Subject: dev-manual/common-task.rst: Added documentation for debuginfod support Added documentation on running debuginfod server and using it on the target. Added the term DEBUGINFOD_URLS definition in ref-manual/variables.rst (From yocto-docs rev: a16ae140e26482c81ce733f20f8c68c6eba55f35) Signed-off-by: Dorinda Bassey Signed-off-by: Richard Purdie --- documentation/dev-manual/common-tasks.rst | 47 ++++++++++++++++++++++++++++++- documentation/ref-manual/variables.rst | 6 ++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/documentation/dev-manual/common-tasks.rst b/documentation/dev-manual/common-tasks.rst index 820b8314d1..4313d905ca 100644 --- a/documentation/dev-manual/common-tasks.rst +++ b/documentation/dev-manual/common-tasks.rst @@ -10023,7 +10023,52 @@ before starting the debugging process. These extra computations place more load on the target system and can alter the characteristics of the program being debugged. -To help get past the previously mentioned constraints, you can use +To help get past the previously mentioned constraints, there are two +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, +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: + +- Ensure that this variable is set in your ``local.conf`` file: + :: + + PACKAGECONFIG_pn-elfutils-native = "debuginfod libdebuginfod" + + This :term:`PACKAGECONFIG` option enables debuginfod and libdebuginfod for + "elfutils-native". + +- Run the following commands to set up the "debuginfod" server: + :: + + $ oe-debuginfod + + +To use debuginfod on the target, you need the following: + +- Ensure that this variable is set in your ``local.conf`` file: + :: + + DEBUGINFOD_URLS = "http://localhost:8002/" + + This :term:`DEBUGINFOD_URLS` option does the client configuration. + + :: + + PACKAGECONFIG_pn-gdb = "debuginfod" + + This :term:`PACKAGECONFIG` option enables "debuginfod" for "gdb". + +Using the gdbserver method +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + gdbserver, which runs on the remote target and does not load any debugging information from the debugged process. Instead, a GDB instance processes the debugging information that is run on a remote computer - diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index 4f441907b1..0310429bdc 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst @@ -1565,6 +1565,12 @@ 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. -- cgit v1.2.3-54-g00ecf