Difference between revisions of "Backtraces"
Line 28: | Line 28: | ||
Run "gdb /where/to/install/aMule/bin/amule". | Run "gdb /where/to/install/aMule/bin/amule". | ||
− | |||
Enter "ha SIGPIPE nostop noprint pass" after (gdb) prompt (to avoid gdb stopping at broken pipes). | Enter "ha SIGPIPE nostop noprint pass" after (gdb) prompt (to avoid gdb stopping at broken pipes). | ||
− | |||
Enter "run". | Enter "run". | ||
− | |||
Use aMule normally until it segfaults. | Use aMule normally until it segfaults. | ||
− | |||
Enter "bt". | Enter "bt". | ||
− | |||
Enter "bt full". | Enter "bt full". | ||
− | |||
Post the output of the last two steps in the backtraces forum http://www.amule.org/amule/board.php?boardid=33&sid= with some additional comment about the circumstances the segfault happened and what aMule version you used (checkout time for CVS). | Post the output of the last two steps in the backtraces forum http://www.amule.org/amule/board.php?boardid=33&sid= with some additional comment about the circumstances the segfault happened and what aMule version you used (checkout time for CVS). | ||
Revision as of 22:42, 28 April 2004
Well, not hard to guess, this is about backtraces.
Usually, it should not be necessary for the normal user to do this. However, we might have a bad day and release a somewhat buggy version or you are running CVS which can also be unstable sometimes. This is where the backraces come in: if aMule crashes, and you get an "OOPS - aMule crashed" and so on, we like to know. The backtrace aMule provides is not always very usefull as it contains little information, but, as usual, there's a better way: a *real* backtrace. First of all, you need the GNU Debugger installed. It's called gdb and you could check for that by typing gdb --version
you should see something like that:
$ gdb --version GNU gdb Red Hat Linux (5.3.90-0.20030710.41rh) Copyright 2003 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu".
If you get the "file not found" or "command not found" error, it's most likely that you don't have the GNU Debugger installed. Install it!
Then, compile aMule with debugging information:
./configure --enable-debug --disable-optimise --prefix=/where/to/install/aMule make make install
(or leave that step out if you have crashes with a *.rpm version, but that backtraces are not as usefull as these with --enable-debug.)
Run "gdb /where/to/install/aMule/bin/amule".
Enter "ha SIGPIPE nostop noprint pass" after (gdb) prompt (to avoid gdb stopping at broken pipes).
Enter "run".
Use aMule normally until it segfaults.
Enter "bt".
Enter "bt full".
Post the output of the last two steps in the backtraces forum http://www.amule.org/amule/board.php?boardid=33&sid= with some additional comment about the circumstances the segfault happened and what aMule version you used (checkout time for CVS).
If you get SIG32 events, you should add a handle before the "run" command:
Enter "ha SIG32 nostop noprint pass" (to avoid gdb stopping at new thread).
So, that's it, have fun with aMule
greetings, Citroklar
(most of the above shamelessly stolen from pure_ascii's post in backtraces forum, thanks, pure!)