Difference between revisions of "Backtraces"
m (more links, spelling, etc) |
|||
Line 1: | Line 1: | ||
Well, not hard to guess, this is about backtraces. | 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. | + | 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 [http://www.gnu.org/software/cvs CVS] which can also be unstable sometimes. |
− | This is where the backtraces come in: if aMule crashes, and you get an "OOPS - aMule crashed" and so on, we'd 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. | + | This is where the backtraces come in: if [[aMule]] crashes, and you get an "OOPS - aMule crashed" and so on, we'd 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 'which gdb' in a console window. You should see something like this: | + | First of all, you need the [http://www.gnu.org/software/gdb/gdb.html GNU Debugger] installed. It's called ''gdb'' and you could check for that by typing ''which gdb'' in a console window. You should see something like this: |
− | + | <pre> | |
− | + | $ which gdb | |
+ | /usr/bin/gdb | ||
+ | </pre> | ||
− | If you dont have gdb installed, you will get a message like this: | + | If you dont have gdb installed, you will get a message like this:<br> |
− | + | ||
− | + | ||
− | + | <pre> | |
+ | $ which gdb | ||
+ | which: no gdb in (/bin:/usr/bin:[sic]) | ||
+ | </pre> | ||
+ | If that is the case, the [http://www.gnu.org/software/gdb/gdb.html GNU Debugger] is most likely not installed on your system and you should install it before you proceed. | ||
Then, compile aMule with debugging information: | Then, compile aMule with debugging information: | ||
− | |||
− | |||
− | |||
+ | <pre> | ||
+ | $ ./configure --enable-debug --disable-optimise --prefix=/where/to/install/aMule | ||
+ | $ make | ||
+ | $ make install | ||
+ | </pre> | ||
If you do not want to overwrite you old copy of aMule, simply do this instead: | If you do not want to overwrite you old copy of aMule, simply do this instead: | ||
− | |||
− | |||
− | + | <pre> | |
+ | $ ./configure --enable-debug --disable-optimise | ||
+ | $ make | ||
+ | </pre> | ||
+ | [[aMule]] can then be run by going into the dir ''src'' and typing ''./amule'' | ||
− | If you are unable or unwilling to recompile, or are running a | + | If you are unable or unwilling to recompile, or are running a RPM version, proceed anyway, but be aware that backtraces from debugging enabled builds are much more useful to us. |
− | + | ||
To create a backtrace, do the following: | To create a backtrace, do the following: | ||
<ol> | <ol> | ||
− | <li>Run | + | <li>Run ''gdb /where/to/install/aMule/bin/amule'' |
− | <li>Enter | + | <li>Enter ''ha SIGPIPE nostop noprint pass" after ''(gdb)'' prompt (to avoid [http://www.gnu.org/software/gdb/gdb.html gdb] stopping at broken pipes). |
− | <li>Enter | + | <li>Enter ''ha SIG32 nostop noprint pass'' (to avoid [http://www.gnu.org/software/gdb/gdb.html gdb] stopping at new thread). |
− | <li>Enter | + | <li>Enter ''run''. |
− | <li>Use aMule normally until it crashes. | + | <li>Use [[aMule]] normally until it crashes. |
− | <li>Enter | + | <li>Enter ''bt'' |
− | <li>Enter | + | <li>Enter ''bt full'' |
− | <li>Post the output of the last two steps in the [http://www.amule.org/amule/board.php?boardid=33 | + | <li>Post the output of the last two steps in the [http://www.amule.org/amule/board.php?boardid=33 backtraces forum] with some additional comment about the circumstances the segfault happened and what [[aMule]] version you used (or checkout time for [http://www.gnu.org/software/cvs CVS]). |
</ol> | </ol> | ||
+ | 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!) |
Revision as of 09:35, 14 July 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 backtraces come in: if aMule crashes, and you get an "OOPS - aMule crashed" and so on, we'd 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 which gdb in a console window. You should see something like this:
$ which gdb /usr/bin/gdb
If you dont have gdb installed, you will get a message like this:
$ which gdb which: no gdb in (/bin:/usr/bin:[sic])
If that is the case, the GNU Debugger is most likely not installed on your system and you should install it before you proceed.
Then, compile aMule with debugging information:
$ ./configure --enable-debug --disable-optimise --prefix=/where/to/install/aMule $ make $ make install
If you do not want to overwrite you old copy of aMule, simply do this instead:
$ ./configure --enable-debug --disable-optimise $ make
aMule can then be run by going into the dir src and typing ./amule
If you are unable or unwilling to recompile, or are running a RPM version, proceed anyway, but be aware that backtraces from debugging enabled builds are much more useful to us.
To create a backtrace, do the following:
- 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 SIG32 nostop noprint pass (to avoid gdb stopping at new thread).
- Enter run.
- Use aMule normally until it crashes.
- 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 (or checkout time for CVS).
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!)