This page explains how to make debugging symbols available for gdb so that when an application crashes and you get a stack trace it will be much more useful for developers. This usually involves installing debug packages or sometimes recompiling with special flags.

After following your distro's instructions for making the symbols available, see GettingTraces/Details for further information on how to get a new stack trace to submit.

Please see the section of the operating system you are running:

Arch Linux

Please see


most packages have a -dbgsym or -dbg variant which are in the debian-debug packages. To get them, first add the debug package of your release to /etc/apt/sources.list:

deb testing-debug main

If needed, replace testing-debug with your release, i.e. stretch-debug

Update apt so it will find the packages:

sudo apt-get update

Now install the debugger (gdb):

sudo apt-get install gdb

Run your application in gdb. In this example we run evince with a file path as argument:

gdb --args /usr/bin/evince /home/user/Documents/report.pdf

Inside the gdb shell type


to start the application. It now (in our case) hopefully crashes and you get back to the gdb shell.

To create a backtrace type

thread apply all bt

in the shell so gdb prints the backtrace which has many lines that look like

#2  0x00007f688c21b091 in ?? () from /usr/lib/x86_64-linux-gnu/

The two question marks ?? mean that you don't have the debug symbols for installed.

Quit gdb using q and find out which package the shared object belongs to by typing

dpkg -S /usr/lib/x86_64-linux-gnu/

You'll get a line which starts like


Now search for that package using apt-cache:

apt-cache search libglib2.0-0

It'll print a few lines, and if you successfully added debian-debug you'll see the package

libglib2.0-0-dbgsym - debug symbols for libglib2.0-0

Install that package

sudo apt-get install libglib2.0-0-dbgsym

Now start gdb again and look for other missing debug symbols. The backtrace line from above now has more info:

#2  0x00007fbcffc1c091 in g_async_queue_pop_intern_unlocked (
    queue=0x559a132738c0, wait=wait@entry=1, end_time=23288620229)
    at ../../../glib/gasyncqueue.c:422

continue elimination of missing symbols by installing the -dbgsym or -dbg packages for all the other shared objects.

For a more in-depth guide see the Debian wiki:


See Fedora wiki:


Every package has a ":debuginfo" trove. To install these do:

sudo conary update <main-package-name>:debuginfo --sync-to-parents

as a start do:

sudo conary update glib:debuginfo gtk:debuginfo gnome-vfs:debuginfo --sync-to-parents


To our knowledge, there are no debug packages available. You need to recompile from source. Before doing so, you must include the following line in the /etc/make.conf file:



See Gentoo documentation:


See Mageia wiki:


See Mandriva wiki:


See openSUSE wiki:


See Ubuntu wiki:

GettingInTouch/Bugzilla/GettingTraces/DistroSpecificInstructions (last edited 2023-06-22 12:55:54 by OndrejHoly)