<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Thanks.  Adding libdw as dependency does get the stack traces working.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Richard Purdie <richard.purdie@linuxfoundation.org><br>
<b>Sent:</b> Friday, August 11, 2023 3:57 AM<br>
<b>To:</b> Lennart Poettering <lennart@poettering.net>; Aaron Brice <Aaron.Brice@nikolamotor.com><br>
<b>Cc:</b> systemd-devel@lists.freedesktop.org <systemd-devel@lists.freedesktop.org><br>
<b>Subject:</b> Re: [systemd-devel] systemd-coredump stack traces</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">[You don't often get email from richard.purdie@linuxfoundation.org. Learn why this is important at
<a href="https://aka.ms/LearnAboutSenderIdentification">https://aka.ms/LearnAboutSenderIdentification</a> ]<br>
<br>
On Fri, 2023-08-11 at 12:34 +0200, Lennart Poettering wrote:<br>
> On Do, 10.08.23 20:34, Aaron Brice (Aaron.Brice@nikolamotor.com) wrote:<br>
><br>
> > I am trying to enable stack traces for core dumps with<br>
> > systemd-coredump.  I have a yocto build for aarch64 containing<br>
> > systemd 250 with the coredump and elfutils options enabled in the<br>
> > build, and the binaries I'm trying to debug are not stripped.<br>
> > coredumpctl list shows the core files and I can use coredumpctl gdb<br>
> > to get a backtrace, but coredumpctl info does not show a backtrace.<br>
> > Is there another build option I need, or any good way to debug where<br>
> > the stack trace is failing?<br>
><br>
> Note that systemd-coredump doesn't directly link against libdw.so.1<br>
> (i.e. the relevant library from elfutils) but will dlopen() it. I<br>
> don't know yocto, but I wouldn#t be surprised if it doesn't realize<br>
> this and doesn't install the .so in your image (or in your initrd)<br>
> because it doesn't notice the dependency.<br>
<br>
It won't detect that.<br>
<br>
You probably need to add something like:<br>
<br>
RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '', 'libdw'}"<br>
<br>
and a patch for that should really be sent for the recipe in oe-core.<br>
<br>
> > And if I get it working, does the systemd stacktrace functionality<br>
> > support using a -dbg package with debug symbols in a separate file?<br>
><br>
> I don't know what yocto -dbg packages are. But the elfutils library<br>
> supports the usual debug symbols linux distros provide, including the<br>
> minimal debug info available in current fedora distros built-in.<br>
<br>
We split the binaries/libraries into two pieces to separate out the<br>
debug symbols and put the appropriate gnu_debuglink section in place.<br>
The debug pieces go into -dbg packages. It is all done with the usual<br>
standards so should just work when they're installed or a debuginfod<br>
server is running/available.<br>
<br>
Cheers,<br>
<br>
Richard<br>
</div>
</span></font></div>
</body>
</html>