Debian's Debugging Debacle: the Debrief
This talk will focus on aspects related to making it easier to debug
Debian systems, particularly via objcopy's "--add-gnu-debuglink"
The talk will briefly introduce newcomers to debugging using gdb and
contrast that to tools such as strace and ltrace, and explain what "debug
symbols" are about. It will then cover Debian's approach to debug symbols
(namely, to strip them all out of binaries before distributing them) and
why we do things that way, with a side note on the friction this caused in
the past with the FSF. This will include demonstrations of how debugging
can be perfomed in spite of this, such as how core files from Debian
users can be used by maintainers, and how -dbg packages can be used.
The second portion of the talk will go into the technical details of the
"--add-gnu-debuglink" approach to resolving the issues, with a brief
introduction to the ELF and DWARF formats, and an explanation of how
tools such as objcopy, gdb, elfutils, strip, and readelf interact (with
a digression on elfutils, which Red Hat uses for this purpose and why
that's not available in Debian).
The final portion of the talk will cover how these features can be
integrated into the Debian system. The issues to be addressed are:
defining a format for distributing the debug information to users;
establishing proper tool support to ensure users can easily obtain
the source in a format that actually works with gdb; tool support to
enable maintainers to provide debug support easily; and considerations
in reducing the impact of this support on buildd maintainers, mirror
operators and others.