DebuggingProgramCrash

Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2005-05-28 20:36:44
Size: 1040
Editor: adsl-213-190-44-43
Comment: imported from the old wiki
Revision 5 as of 2006-03-23 17:24:26
Size: 1212
Editor: i577B0381
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= DebuggingProgramCrash =
Line 16: Line 14:
(gdb) handle SIG33 pass nostop noprint
Line 20: Line 19:
(gdb) thread apply all bt full }}} (gdb) thread apply all bt }}}
 1. If the output gets very long, you might want to use: {{{
(gdb) set logging output backtrace.txt
(gdb) set logging on
}}} beforehand.
Line 25: Line 28:

CategoryDocumentation
  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:
    1. Install the build-time dependencies for the package:

      sudo apt-get build-dep <package>
    2. Build .debs for debugging:

      DEB_BUILD_OPTIONS="nostrip noopt" sudo apt-get source -b <package>
    3. Install the needed .debs (they will be in the current working directory if the build succeeded):

      sudo dpkg --install <package.deb>
  3. Start the program under control of gdb:

    gdb <program>
    (gdb) handle SIG33 pass nostop noprint
    (gdb) run <arguments, if any>
  4. The program will start. Perform any actions necessary to reproduce the crash
  5. Retrieve a backtrace of the crash:

    (gdb) thread apply all bt 
  6. If the output gets very long, you might want to use:

    (gdb) set logging output backtrace.txt
    (gdb) set logging on
    beforehand.
  7. Include the complete output from gdb in your bug report

* 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.

CategoryDocumentation

DebuggingProgramCrash (last edited 2026-01-27 15:38:17 by sombrafam)