DebuggingProgramCrash

Differences between revisions 2 and 38 (spanning 36 versions)
Revision 2 as of 2005-07-25 04:04:37
Size: 1036
Editor: S0106000000cc07fc
Comment: add category documentation
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 1: Line 1:
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Contents'''[[BR]][[TableOfContents]]||

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`:
 {{{deb http://people.ubuntu.com/~pitti/ddebs edgy main universe
}}}

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
}}}

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


=== References ===

 * Announcement: https://lists.ubuntu.com/archives/ubuntu-devel-announce/2006-September/000195.html


== Feisty Fawn 7.04 ==

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

 {{{deb http://people.ubuntu.com/~pitti/ddebs feisty main universe
}}}

== Gutsy Gibbon 7.10 ==

The steps described above for Edgy also work for Gutsy, just add the following line to '/etc/apt/sources.list' :
 {{{deb http://people.ubuntu.com/~pitti/ddebs gutsy main universe
}}}

== Prior Ubuntu versions ==

Use this section if you are using an Ubuntu version prior to Edgy 6.10.
Line 3: Line 58:
  a. Install the build-time dependencies for the package: {{{
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

  a. Install the development scripts:
  {{{
sudo apt-get install devscripts fakeroot
}}}

  a. Find out to which package your program belongs to:
  {{{
dpkg --search <program>
}}}

  a. Install the build-time dependencies for the package:
  {{{
Line 6: Line 75:
  a. Build .debs for debugging: {{{
DEB_BUILD_OPTIONS="nostrip noopt" sudo apt-get source -b <package>
  a. Build .debs for debugging:
 
{{{
export DEB_BUILD_OPTIONS="debug nostrip noopt"
faker
oot apt-get source -b <package>
Line 9: Line 80:
  a. Install the needed .debs (they will be in the current working directory if the build succeeded): {{{
sudo dpkg --install <package.deb>
  a. Install the needed .debs (they will be in the current working directory if the build succeeded):
 
{{{
sudo debi <package>*.changes
Line 12: Line 84:
 1. Start the program under control of `gdb`: {{{
gdb <program>
(gdb) run <arguments, if any>


* 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
Line 16: Line 96:
 1. The program will start. Perform any actions necessary to reproduce the crash
 1. Retrieve a backtrace of the crash: {{{
(gdb) thread apply all bt full }}}
Line 20: Line 97:
 1. Include the complete output from gdb in your bug report
Line 22: Line 98:
* most of the packages support the build of debugging version in this way. If that doesn't work for a package you can open a bug against it. == Info for the BugSquad ==
Line 24: Line 100:
CategoryDocumentation 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`:

 0. This will create a minimal `edgy` system. {{{
sudo mkdir -p /chroots/edgy
sudo debootstrap edgy /chroots/edgy/}}}
 0. Now you change into this minimal `edgy` system. {{{
sudo chroot /chroot/edgy}}}
 0. edit `/etc/apt/sources/list` and all the repositories you need, especially Martin's ddeb repository.
 0. {{{
apt-get update; apt-get install gdb apport}}}
 0. use `apport-retrace` as you're used to.

----
CategoryBugSquad

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 2026-01-27 15:38:17 by sombrafam)