DebuggingProgramCrash

Differences between revisions 64 and 66 (spanning 2 versions)
Revision 64 as of 2008-12-02 04:39:41
Size: 5255
Editor: c-69-243-46-199
Comment:
Revision 66 as of 2009-01-09 09:56:26
Size: 5323
Editor: p4081-ipbf2501marunouchi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
== Gutsy Gibbon 7.10 , Hardy Heron 8.04 and Intrepid Ibex 8.10 == == Gutsy Gibbon 7.10 , Hardy Heron 8.04, Intrepid Ibex 8.10, and Jaunty Jackalope 9.04==
Line 8: Line 8:
Use this section only if you are using Ubuntu '''Gutsy 7.10''' , '''Hardy 8.04''' or '''Intrepid Ibex'''. See the following section if you are using a prior version. Use this section only if you are using Ubuntu '''Gutsy 7.10''' , '''Hardy 8.04''' or '''Intrepid 8.10''' or '''Jaunty Jackalope'''. See the following section if you are using a prior version.
Line 10: Line 10:
 1. Add the following lines to `/etc/apt/sources.list`: (of course, replace '''intrepid''' with '''gutsy''' if you're using 7.10 or '''hardy''' for 8.04)  1. Add the following lines to `/etc/apt/sources.list`: (of course, replace '''jaunty''' with '''gutsy''' if you're using 7.10 or '''hardy''' for 8.04, or '''intrepid''' for 8.10.)
Line 12: Line 12:
deb http://ddebs.ubuntu.com intrepid main restricted universe multiverse
deb http://ddebs.ubuntu.com intrepid-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com intrepid-proposed main restricted universe multiverse
deb http://ddebs.ubuntu.com intrepid-security main restricted universe multiverse
deb http://ddebs.ubuntu.com jaunty main restricted universe multiverse
deb http://ddebs.ubuntu.com jaunty-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com jaunty-proposed main restricted universe multiverse
deb http://ddebs.ubuntu.com jaunty-security main restricted universe multiverse

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

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

== Gutsy Gibbon 7.10 , Hardy Heron 8.04, Intrepid Ibex 8.10, and Jaunty Jackalope 9.04==

Use this section only if you are using Ubuntu Gutsy 7.10 , Hardy 8.04 or Intrepid 8.10 or Jaunty Jackalope. See the following section if you are using a prior version.

  1. Add the following lines to /etc/apt/sources.list: (of course, replace jaunty with gutsy if you're using 7.10 or hardy for 8.04, or intrepid for 8.10.)

    deb http://ddebs.ubuntu.com jaunty main restricted universe multiverse
    deb http://ddebs.ubuntu.com jaunty-updates main restricted universe multiverse
    deb http://ddebs.ubuntu.com jaunty-proposed main restricted universe multiverse
    deb http://ddebs.ubuntu.com jaunty-security main restricted universe multiverse
    You may also add these lines using the Synaptic Package Manager:
    • Choose Synaptic via the System > Administration menu.

    • Choose Software Sources via the Settings menu, and click on the Third-Party Software tab.

    • Click the Add button and enter each deb ... line as above one by one and click the Add Source button (you will have to add these lines one at a time).

    • Click the Reload button once you are done adding all the deb lines.

  2. Import the debug symbol archive signing key:
    gpg --keyserver keyserver.ubuntu.com --recv-key 428D7C01
    gpg --check-sigs 428D7C01 # signed by key of Martin Pitt
    gpg -o - --export 428D7C01 | 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 first run:
    apt-cache policy yelp

This will show you the version number currently installed (we'll use 2.22.1-0ubuntu2.8.04.1 in this example). Then, you can then run the following to install the debug symbols:

  • sudo apt-get install yelp-dbgsym=2.22.1-0ubuntu2.8.04.1

Alternatively, main Ubuntu repositories could contain '-dbg' debug symbol packages. Those are equivalent to '-dbgsym'. You can safely use either one, but not both at once.

  1. Now you make a Backtrace.

  2. You can also run Valgrind, if the program crashes with a "Segmentation fault" or "Bus error".

  3. Optionally, you may be asked to produce an Strace.

  4. You can also provide this file : ~/.xsession-errors

References

Prior Ubuntu versions

Use this section if you are using an Ubuntu version prior to Gusty 7.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

Please see DebuggingXorg for how to debug Xorg server crashes.

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 Gutsy and the crash happened on Feisty:

  1. This will create a minimal feisty system.

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

    sudo chroot /chroot/feisty
  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.

For more information on dealing with bug reports Apport see Bugs/ApportRetraces.


CategoryBugSquad CategoryDebugging

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