Message ID | 20231207140828.3201054-1-ecordonnier@snap.com |
---|---|
State | New |
Headers | show |
Series | [v2] manuals: document minidebuginfo | expand |
Hi Etienne, Many thanks for your contribution. Happy to learn about MiniDebugInfo! See my comments below, mostly about formatting issues. I could fix it by myself if you lack time, but this way you know this for future patches :) On 07.12.23 at 15:08, Etienne Cordonnier via lists.yoctoproject.org wrote: > From: Etienne Cordonnier <ecordonnier@snap.com> > > Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com> > --- > documentation/dev-manual/debugging.rst | 15 +++++++++++++++ > documentation/ref-manual/features.rst | 3 +++ > 2 files changed, 18 insertions(+) > > diff --git a/documentation/dev-manual/debugging.rst b/documentation/dev-manual/debugging.rst > index fea2cb30a..12694b01b 100644 > --- a/documentation/dev-manual/debugging.rst > +++ b/documentation/dev-manual/debugging.rst > @@ -1173,6 +1173,21 @@ To support this kind of debugging, you need do the following: > Consider that this will reduce the application's performance and is > recommended only for debugging purposes. > > +Enabling Minidebuginfo > +====================== > + > +Enabling the DISTRO_FEATURES minidebuginfo adds a compressed ELF section ".gnu_debugdata" Use :term:`DISTRO_FEATURES` and ``.gnu_debugdata`` > +to all binary files, containing only function names, and thus increasing the size of the > +binaries only by 5 to 10%. For comparison, full debug symbols can be 10 times as big as > +a stripped binary, and it is thus not always possible to deploy full debug symbols. > +Minidebuginfo data allows, on the one side, to retrieve a call-stack using > +gdb (command backtrace) without deploying full debug-symbols to the target. It also Use ``gdb`` (to refer to the command) or GDB (to refer to the program) as in other parts of the manual. Replace "debug-symbols" by "debugging symbols"? > +allows to retrieve a symbolicated call-stack when using systemd-coredump to manage Use ``systemd-coredump`` > +coredumps (commands "coredumpctl list" and "coredumpctl info"). Use ``coredumpctl list`` and ``coredumpctl info`` > + > +This feature was created by Fedora, see https://fedoraproject.org/wiki/Features/MiniDebugInfo for > +more details. > + > Other Debugging Tips > ==================== > > diff --git a/documentation/ref-manual/features.rst b/documentation/ref-manual/features.rst > index dd14339bc..1320c3a58 100644 > --- a/documentation/ref-manual/features.rst > +++ b/documentation/ref-manual/features.rst > @@ -161,6 +161,9 @@ metadata, as extra layers can define their own: > - *keyboard:* Include keyboard support (e.g. keymaps will be loaded > during boot). > > +- *minidebuginfo:* Add minimal debug symbols :ref:`(minidebuginfo)<dev-manual/debugging:enabling minidebuginfo>` Use "debugging symbols" as in the change above? > + to binary files containing, allowing coredumpctl and gdb to show symbolicated stack traces. Use ``coredumpctl`` and ``gdb``. Thanks again Cheers Michael.
Hi / bonjour Michael, Thanks for your feedback, indeed it is meaningful that I learn the proper formatting for future patches. I changed everything according to your feedback, except "debug symbol" (I only removed the hyphen), my reasoning being: - even though I find both "debug symbol" and "debugging symbol" on google, the wikipedia article is called "debug symbol" ( https://en.wikipedia.org/wiki/Debug_symbol ) - yocto documentation uses both "debug symbol" and "debugging symbol", however I find 5 hits for "debugging symbol" vs 35 hits for "debug symbol" - I asked a native English speaker and he thought "debug symbol" sounded better Etienne On Fri, Dec 8, 2023 at 9:19 AM Michael Opdenacker < michael.opdenacker@bootlin.com> wrote: > Hi Etienne, > > Many thanks for your contribution. Happy to learn about MiniDebugInfo! > > See my comments below, mostly about formatting issues. I could fix it by > myself if you lack time, but this way you know this for future patches :) > > On 07.12.23 at 15:08, Etienne Cordonnier via lists.yoctoproject.org wrote: > > From: Etienne Cordonnier <ecordonnier@snap.com> > > > > Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com> > > --- > > documentation/dev-manual/debugging.rst | 15 +++++++++++++++ > > documentation/ref-manual/features.rst | 3 +++ > > 2 files changed, 18 insertions(+) > > > > diff --git a/documentation/dev-manual/debugging.rst > b/documentation/dev-manual/debugging.rst > > index fea2cb30a..12694b01b 100644 > > --- a/documentation/dev-manual/debugging.rst > > +++ b/documentation/dev-manual/debugging.rst > > @@ -1173,6 +1173,21 @@ To support this kind of debugging, you need do > the following: > > Consider that this will reduce the application's performance and is > > recommended only for debugging purposes. > > > > +Enabling Minidebuginfo > > +====================== > > + > > +Enabling the DISTRO_FEATURES minidebuginfo adds a compressed ELF > section ".gnu_debugdata" > > > Use :term:`DISTRO_FEATURES` > and ``.gnu_debugdata`` > > > +to all binary files, containing only function names, and thus > increasing the size of the > > +binaries only by 5 to 10%. For comparison, full debug symbols can be 10 > times as big as > > +a stripped binary, and it is thus not always possible to deploy full > debug symbols. > > +Minidebuginfo data allows, on the one side, to retrieve a call-stack > using > > +gdb (command backtrace) without deploying full debug-symbols to the > target. It also > > > Use ``gdb`` (to refer to the command) or GDB (to refer to the program) > as in other parts of the manual. > > Replace "debug-symbols" by "debugging symbols"? > > > +allows to retrieve a symbolicated call-stack when using > systemd-coredump to manage > > > Use ``systemd-coredump`` > > > +coredumps (commands "coredumpctl list" and "coredumpctl info"). > > Use ``coredumpctl list`` and ``coredumpctl info`` > > > + > > +This feature was created by Fedora, see > https://urldefense.proofpoint.com/v2/url?u=https-3A__fedoraproject.org_wiki_Features_MiniDebugInfo&d=DwICaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=AhkbNonVuMIGRfPx_Qj9TsRih1DULJTKUkSGa66m67E&m=hQV-UWkUsNIhb4Pyow0-VyHqmNd6krcB7umcC1z9AOQiDkBhJM3XT-1O8-fB_Gik&s=zTnO9U6vQxH0Thr-4OnmF-jGcGK4b_1R-ikzP832JoQ&e= > for > > +more details. > > + > > Other Debugging Tips > > ==================== > > > > diff --git a/documentation/ref-manual/features.rst > b/documentation/ref-manual/features.rst > > index dd14339bc..1320c3a58 100644 > > --- a/documentation/ref-manual/features.rst > > +++ b/documentation/ref-manual/features.rst > > @@ -161,6 +161,9 @@ metadata, as extra layers can define their own: > > - *keyboard:* Include keyboard support (e.g. keymaps will be loaded > > during boot). > > > > +- *minidebuginfo:* Add minimal debug symbols > :ref:`(minidebuginfo)<dev-manual/debugging:enabling minidebuginfo>` > > > Use "debugging symbols" as in the change above? > > > + to binary files containing, allowing coredumpctl and gdb to show > symbolicated stack traces. > > > Use ``coredumpctl`` and ``gdb``. > Thanks again > Cheers > Michael. > > -- > > Michael Opdenacker, Bootlin > Embedded Linux and Kernel engineering > > https://urldefense.proofpoint.com/v2/url?u=https-3A__bootlin.com&d=DwICaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=AhkbNonVuMIGRfPx_Qj9TsRih1DULJTKUkSGa66m67E&m=hQV-UWkUsNIhb4Pyow0-VyHqmNd6krcB7umcC1z9AOQiDkBhJM3XT-1O8-fB_Gik&s=rbqxBdiyaYg0d0YO9htyEO3uk_oMr48vN-X-L0UPwPE&e= > >
diff --git a/documentation/dev-manual/debugging.rst b/documentation/dev-manual/debugging.rst index fea2cb30a..12694b01b 100644 --- a/documentation/dev-manual/debugging.rst +++ b/documentation/dev-manual/debugging.rst @@ -1173,6 +1173,21 @@ To support this kind of debugging, you need do the following: Consider that this will reduce the application's performance and is recommended only for debugging purposes. +Enabling Minidebuginfo +====================== + +Enabling the DISTRO_FEATURES minidebuginfo adds a compressed ELF section ".gnu_debugdata" +to all binary files, containing only function names, and thus increasing the size of the +binaries only by 5 to 10%. For comparison, full debug symbols can be 10 times as big as +a stripped binary, and it is thus not always possible to deploy full debug symbols. +Minidebuginfo data allows, on the one side, to retrieve a call-stack using +gdb (command backtrace) without deploying full debug-symbols to the target. It also +allows to retrieve a symbolicated call-stack when using systemd-coredump to manage +coredumps (commands "coredumpctl list" and "coredumpctl info"). + +This feature was created by Fedora, see https://fedoraproject.org/wiki/Features/MiniDebugInfo for +more details. + Other Debugging Tips ==================== diff --git a/documentation/ref-manual/features.rst b/documentation/ref-manual/features.rst index dd14339bc..1320c3a58 100644 --- a/documentation/ref-manual/features.rst +++ b/documentation/ref-manual/features.rst @@ -161,6 +161,9 @@ metadata, as extra layers can define their own: - *keyboard:* Include keyboard support (e.g. keymaps will be loaded during boot). +- *minidebuginfo:* Add minimal debug symbols :ref:`(minidebuginfo)<dev-manual/debugging:enabling minidebuginfo>` + to binary files containing, allowing coredumpctl and gdb to show symbolicated stack traces. + - *multiarch:* Enable building applications with multiple architecture support.