From AMule Project FAQ
Revision as of 23:25, 28 April 2004 by (Talk)

Jump to: navigation, search

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 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 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!)