morph,
When running under gdb, you must tell it (gdb) to ignore signals that your application will use. In the case of aMule, it uses pthreads, which uses SIG32, SIG33 and SIG34. Also, sometimes you may get SIGPIPE, so create a file named .dgbinit in the same directory as you will run gdb with the following contents:
ha SIGPIPE nostop noprint pass
ha SIG32 nostop noprint pass
ha SIG33 nostop noprint pass
ha SIG34 nostop noprint pass
#set env LD_LIBRARY_PATH /usr/local/wxWidgets-cvsu/lib/
#break amule.cpp:255
The last two lines are commented, and only left here as an example of what you may include in this file.
In your case, if you receive an unignored and used signal in gdb, you can just tell it to continue "c". But before, tell gdb to ignore the signal, otherwise it will happen again.
Cheers!