DebuggingProgramCrash

Differences between revisions 37 and 38
Revision 37 as of 2007-06-28 04:59:28
Size: 4008
Editor: 59
Comment:
Revision 38 as of 2007-06-30 09:01:38
Size: 4055
Editor: m208
Comment: Mark Edgy debugging symbols as no longer available as only feisty and gutsy ones
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
== Edgy Eft 6.10 == == Edgy Eft 6.10 == DEBUGGING SYMBOLS NO LONGER AVAILABLE FOR EDGY

This document describes how to install debug packages on Ubuntu, which will aid in providing information for bugs.

== Edgy Eft 6.10 == DEBUGGING SYMBOLS NO LONGER AVAILABLE FOR EDGY

Use this section only if you are using Ubuntu Edgy 6.10. See the following section if you are using a prior version.

1. Add the following line to /etc/apt/sources.list:

}}}

2. Import Martin's public key to your keyring:

  • wget -q "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x0DE7276D5E0577F2" -O- | sudo apt-key add -

3. Then run

  • sudo apt-get update

to update your package list.

4. The debug symbol packages have the '-dbgsym' suffix attached, so to install the debug symbols for the package 'yelp', you run:

  • sudo apt-get install yelp-dbgsym
  • Now you make a ["Backtrace"].
  • You can also run ["Valgrind"], if the program crashes with a "Segmentation fault" or "Bus error".
  • Optionally, you may be asked to produce an ["Strace"].

References

Feisty Fawn 7.04

The steps described above for Edgy also work for Feisty, just add the following line to /etc/apt/sources.list:

}}}

Gutsy Gibbon 7.10

The steps described above for Edgy also work for Gutsy, just add the following line to '/etc/apt/sources.list' :

}}}

Prior Ubuntu versions

Use this section if you are using an Ubuntu version prior to Edgy 6.10.

  1. Check if the package has a debugging version available. In general, debugging packages will be named with a -dbg suffix

  2. If not, you can generally* build one this way:

Something to keep in mind: if you would like to create a build you're going to need to have the relevant deb-src lines in your /etc/apt/sources.list

  1. Install the development scripts:
    sudo apt-get install devscripts fakeroot
  2. Find out to which package your program belongs to:
    dpkg --search <program> 
  3. Install the build-time dependencies for the package:
    sudo apt-get build-dep <package>
  4. Build .debs for debugging:
    export DEB_BUILD_OPTIONS="debug nostrip noopt"
    fakeroot apt-get source -b <package>
  5. Install the needed .debs (they will be in the current working directory if the build succeeded):
    sudo debi <package>*.changes

* Most packages support the build of debugging version in this way. If this process doesn't work for a package, please open a bug against it.

The Xorg server

The X server will by default trap its own crashes and dump a stack trace in /var/log/Xorg.0.log. However, this stack trace is modified by the signal handler itself. To get a "normal" crash, which will trigger a core dump (and apport reporting), add this to your /etc/X11/xorg.conf:

Section "ServerFlags"
        Option "NoTrapSignals" "true"
EndSection

Info for the BugSquad

If you're trying to apport-retrace a crash report from a bug that didn't happen on the same Ubuntu release as the one you're running, do the following:

Say that you're running feisty and the crash happened on edgy:

  1. This will create a minimal edgy system.

    sudo mkdir -p /chroots/edgy
    sudo debootstrap edgy /chroots/edgy/
  2. Now you change into this minimal edgy system.

    sudo chroot /chroot/edgy
  3. edit /etc/apt/sources/list and all the repositories you need, especially Martin's ddeb repository.

  4. apt-get update; apt-get install gdb apport
  5. use apport-retrace as you're used to.


CategoryBugSquad

DebuggingProgramCrash (last edited 2022-12-20 22:13:06 by sergiodj)