[systemd-devel] systemd-coredump stack traces
Richard Purdie
richard.purdie at linuxfoundation.org
Fri Aug 11 10:57:36 UTC 2023
On Fri, 2023-08-11 at 12:34 +0200, Lennart Poettering wrote:
> On Do, 10.08.23 20:34, Aaron Brice (Aaron.Brice at nikolamotor.com) wrote:
>
> > I am trying to enable stack traces for core dumps with
> > systemd-coredump. I have a yocto build for aarch64 containing
> > systemd 250 with the coredump and elfutils options enabled in the
> > build, and the binaries I'm trying to debug are not stripped.
> > coredumpctl list shows the core files and I can use coredumpctl gdb
> > to get a backtrace, but coredumpctl info does not show a backtrace.
> > Is there another build option I need, or any good way to debug where
> > the stack trace is failing?
>
> Note that systemd-coredump doesn't directly link against libdw.so.1
> (i.e. the relevant library from elfutils) but will dlopen() it. I
> don't know yocto, but I wouldn#t be surprised if it doesn't realize
> this and doesn't install the .so in your image (or in your initrd)
> because it doesn't notice the dependency.
It won't detect that.
You probably need to add something like:
RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '', 'libdw'}"
and a patch for that should really be sent for the recipe in oe-core.
> > And if I get it working, does the systemd stacktrace functionality
> > support using a -dbg package with debug symbols in a separate file?
>
> I don't know what yocto -dbg packages are. But the elfutils library
> supports the usual debug symbols linux distros provide, including the
> minimal debug info available in current fedora distros built-in.
We split the binaries/libraries into two pieces to separate out the
debug symbols and put the appropriate gnu_debuglink section in place.
The debug pieces go into -dbg packages. It is all done with the usual
standards so should just work when they're installed or a debuginfod
server is running/available.
Cheers,
Richard
More information about the systemd-devel
mailing list