Strategy for Snaps with Debugging Symbols

Dmitrii Shcherbakov dmitrii.shcherbakov at canonical.com
Fri Mar 24 17:49:06 UTC 2017


Hi everybody,

My question is in the context of a libvirt & qemu snap but I think it is
worthwhile to discuss that for any software written in C, C++ or other
compiled languages for which debugging symbols can be generated.

A lot of debugging tasks can be solved by looking at logs and {s,l}tracing
but sometimes this is not enough.

With Debian packages the approaches are:

1) to provide your own -dbg package;
2) let https://launchpad.net/ubuntu/+source/pkg-create-dbgsym generate it
and add a ddebs.ubuntu.com repo on demand.

https://wiki.ubuntu.com/Debug%20Symbol%20Packages
https://wiki.ubuntu.com/AptElfDebugSymbols
https://wiki.debian.org/AutomaticDebugPackages

One idea for snaps is to use -dbg tracks which are going to contain snaps
with embedded debugging symbols. Of course, some snaps may contain a number
of services so you'd have to customize your build process and create
additional automation around snapcraft to make it more manageable.

https://snapcraft.io/docs/reference/channels

Another issue is that with separate snaps that would have debugging symbols
you'd have to replace a non-debug snap with a debug snap which would
complicate things if you had a certain state already and did not want a
transactional erase of the state you wanted to debug.

In the case of ddebs you can just download symbols and use them with an
existing application while with a separate snap you need to perform a
replacement.

I was wondering if anybody thought about it yet and, if not, to start this
discussion here.

Thanks in advance!
<https://snapcraft.io/docs/reference/channels>
Best Regards,
Dmitrii Shcherbakov



More information about the Snapcraft mailing list