On Fri, Jan 25, 2013 at 07:02:53PM +0100, Mark Wielaard wrote:
I should have mentioned two other techniques which work at least
on Fedora (and derived) systems:
If you have a build-id then getting the debuginfo package can be done
by trying to install the build-id derived symlink. For example given
build-id 8bd8064a80f57906f7e21504f13a86110cdb4535:
$ yum --enablerepo=fedora-debuginfo install
/usr/lib/debug/.build-id/8b/d8064a80f57906f7e21504f13a86110cdb4535.debug
Will install zlib-debuginfo-1.2.7-9.fc18.x86_64. That package contains
/usr/lib/debug/.build-id/8b/d8064a80f57906f7e21504f13a86110cdb4535.debug
which is a symlink to /usr/lib/debug/usr/lib64/libz.so.1.2.7.debug
(Note the slash after the first two hex-digits of the build-id.)
This only works for the latest/updated release and only for the primary
architecture. But this is often what you want if you are working on
the machine itself. gdb and systemtap for example will suggest that
when they need symbol/debug info for a build-id for which the debuginfo
package hasn't been installed yet.
Another option (that systemtap will use for unprivileged users) when
abrt is installed (abrt is a crash catcher installed by default on fedora)
is to use:
echo 8bd8064a80f57906f7e21504f13a86110cdb4535 \
| abrt-action-install-debuginfo --ids=- --cache=/tmp
That will install the same debuginfo package files under /tmp/
Cheers,
Mark