#772592 amule: occasional segmentation fault

Package:
amule
Source:
amule
Description:
client for the eD2k and Kad networks, like eMule
Submitter:
Dmitry Smirnov
Date:
2014-12-31 20:33:10 UTC
Severity:
normal
#772592#5
Date:
2014-12-08 21:30:24 UTC
From:
To:
I used all my quota this month and my ISP throttled connection to 512/512.
That's when amule begin to crash -- it works for less than an hour until
"Segmentation fault". I have only KAD enabled and I have a feeling that it may
be related to number of simultaneous connections (although lowering max
simultaneous connections from 900 to 90 did not help). No errors are logged to
console and I tried to run amule under GDB for a while but under GDB it is
slow and problem do not manifest. Without GDB it crashes in 30...60 min.

I think on fast connection I've seen few occasional segfaults in the past but
it was not unusual for amule to last for days and even weeks while now I have
an hour at most.

This is on up-to-date Jessie.

I'm out of ideas how to troubleshoot further...
--- Theology is but the ignorance of natural causes reduced to a system. -- Baron Paul Henri T. d'Holbach
#772592#10
Date:
2014-12-08 21:53:49 UTC
From:
To:
control: tags -1 + moreinfo

Hi!

I think that the only way to report it upstream for a fix is to let it
run under gdb and wait for it to crash and then generate the required
tracebacks.

I have an instance of amule running from more than 1week and it is the
same version you are reporting this bug againts.

Just a note: Jessie doesnt include amule, as it was not possible to
port it to WX3.0

Regards,

#772592#17
Date:
2014-12-08 22:46:07 UTC
From:
To:
So it is not a known bug...
Thanks, I'll run it in GDB and try to wait long enough for it to crash.

It was the same for me until ISP began to throttle my connection...

Of course. I'm reporting from another machine so at least I had to mention
what is running if I'm not providing list of packages as generated by
reportbug...

#772592#22
Date:
2014-12-08 22:51:28 UTC
From:
To:
no well maybe it is known but just mention it SIGSEGV without proving
even a location memory or so it is hard to say if someone else already
spotted it or now

thanks a lot!!

aaah I now I see what you mean with that.

Cheers,

#772592#27
Date:
2014-12-09 00:06:10 UTC
From:
To:
~~~~
(gdb) thread apply all bt

Thread 5 (Thread 0x7fffea5a1700 (LWP 10521)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007ffff5e761e6 in wxConditionInternal::WaitTimeout(unsigned long) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#2  0x00007ffff5e76d6a in wxSemaphoreInternal::WaitTimeout(unsigned long) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#3  0x00000000005dca1e in CTimerThread::Entry (this=0x41fa4e0) at ../../src/Timer.cpp:66
#4  0x00007ffff5e774e5 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#5  0x00007ffff7bc70a4 in start_thread (arg=0x7fffea5a1700) at pthread_create.c:309
#6  0x00007ffff5070ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7fffec5a7700 (LWP 10517)):
#0  g_source_unref_internal (source=source@entry=0x7fffe00008c0, context=context@entry=0xa85020, have_lock=have_lock@entry=1) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2027
#1  0x00007ffff2e5d1a9 in g_source_destroy_internal (source=0x7fffe00008c0, context=0xa85020, have_lock=0) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:1201
#2  0x00007ffff2e5e925 in g_source_remove (tag=385801) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2239
#3  0x00007ffff6515af7 in GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent) () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#4  0x00007ffff6114712 in GSocket::Write(char const*, int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#5  0x00007ffff610fe78 in wxSocketBase::_Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#6  0x00007ffff610feb4 in wxSocketBase::Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#7  0x00000000005aa514 in Write (nbytes=46, buffer=0x4507990, this=0x436eb80) at ../../src/LibSocket.h:266
#8  CSocketClientProxy::Write (this=this@entry=0x436eb80, buffer=0x4507990, nbytes=nbytes@entry=46) at ../../src/Proxy.cpp:1324
#9  0x00000000004a401f in CEncryptedStreamSocket::Write (this=this@entry=0x436eb80, lpBuf=<optimized out>, nBufLen=nBufLen@entry=46) at ../../src/EncryptedStreamSocket.cpp:210
#10 0x00000000004a2bc3 in CEMSocket::Send (this=0x436eb80, maxNumberOfBytesToSend=<optimized out>, minFragSize=<optimized out>, onlyAllowedToSendControlPacket=true) at ../../src/EMSocket.cpp:563
#11 0x0000000000480eb9 in SendControlData (minFragSize=<optimized out>, maxNumberOfBytesToSend=<optimized out>, this=0x436eb80) at ../../src/EMSocket.h:69
#12 CClientTCPSocket::SendControlData (this=0x436eb80, maxNumberOfBytesToSend=<optimized out>, overchargeMaxBytesToSend=<optimized out>) at ../../src/ClientTCPSocket.cpp:2045
#13 0x00000000004eb016 in UploadBandwidthThrottler::Entry (this=0x36c74c0) at ../../src/UploadBandwidthThrottler.cpp:381
#14 0x00007ffff5e774e5 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#15 0x00007ffff7bc70a4 in start_thread (arg=0x7fffec5a7700) at pthread_create.c:309
#16 0x00007ffff5070ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7ffff7f84a00 (LWP 10502)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff2ea39a9 in g_mutex_lock_slowpath (mutex=mutex@entry=0xa85020) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gthread-posix.c:1314
#2  0x00007ffff2ea4372 in g_mutex_lock (mutex=mutex@entry=0xa85020) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gthread-posix.c:1338
#3  0x00007ffff2e5f76f in g_main_context_check (context=context@entry=0xa85020, max_priority=2147483647, fds=fds@entry=0x45add60, n_fds=n_fds@entry=13)
    at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:3568
#4  0x00007ffff2e5fe83 in g_main_context_iterate (context=0xa85020, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:3778
#5  0x00007ffff2e60272 in g_main_loop_run (loop=0x41fec40) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:3975
#6  0x00007ffff4a6d4b7 in IA__gtk_main () at /build/gtk+2.0-Gthrko/gtk+2.0-2.24.25/gtk/gtkmain.c:1257
#7  0x00007ffff65149ea in wxEventLoop::Run() () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#8  0x00007ffff659e8ab in wxAppBase::MainLoop() () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#9  0x00007ffff5e1d2fa in wxEntry(int&, wchar_t**) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#10 0x0000000000441452 in main (argc=1, argv=<optimized out>) at ../../src/amule-gui.cpp:93
~~~~

#772592#32
Date:
2014-12-09 00:33:20 UTC
From:
To:
I'm sorry, the way upstream wants backtraces is running these gdb commands:

bt
bt full
thread apply all bt

Can you please retake it with the output of all the 3 commands (I will
have to write a guide to include into the package about taking
tracebacks as upstream wants)

Regards,

#772592#37
Date:
2014-12-09 01:14:58 UTC
From:
To:
another backtrace :

~~~~
(gdb) bt
#0  g_source_unref_internal (source=source@entry=0x7fffe0002bc0, context=context@entry=0xa85020, have_lock=have_lock@entry=1) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2027
#1  0x00007ffff2e5d1a9 in g_source_destroy_internal (source=0x7fffe0002bc0, context=0xa85020, have_lock=0) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:1201
#2  0x00007ffff2e5e925 in g_source_remove (tag=214464) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2239
#3  0x00007ffff6515af7 in GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent) () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#4  0x00007ffff6114712 in GSocket::Write(char const*, int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#5  0x00007ffff610fe78 in wxSocketBase::_Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#6  0x00007ffff610feb4 in wxSocketBase::Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#7  0x00000000005aa514 in Write (nbytes=46, buffer=0x4381550, this=0x43f3890) at ../../src/LibSocket.h:266
#8  CSocketClientProxy::Write (this=this@entry=0x43f3890, buffer=0x4381550, nbytes=nbytes@entry=46) at ../../src/Proxy.cpp:1324
#9  0x00000000004a401f in CEncryptedStreamSocket::Write (this=this@entry=0x43f3890, lpBuf=<optimized out>, nBufLen=nBufLen@entry=46) at ../../src/EncryptedStreamSocket.cpp:210
#10 0x00000000004a2bc3 in CEMSocket::Send (this=0x43f3890, maxNumberOfBytesToSend=<optimized out>, minFragSize=<optimized out>, onlyAllowedToSendControlPacket=true) at ../../src/EMSocket.cpp:563
#11 0x0000000000480eb9 in SendControlData (minFragSize=<optimized out>, maxNumberOfBytesToSend=<optimized out>, this=0x43f3890) at ../../src/EMSocket.h:69
#12 CClientTCPSocket::SendControlData (this=0x43f3890, maxNumberOfBytesToSend=<optimized out>, overchargeMaxBytesToSend=<optimized out>) at ../../src/ClientTCPSocket.cpp:2045
#13 0x00000000004eb016 in UploadBandwidthThrottler::Entry (this=0x36c93e0) at ../../src/UploadBandwidthThrottler.cpp:381
#14 0x00007ffff5e774e5 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#15 0x00007ffff7bc70a4 in start_thread (arg=0x7fffec5a7700) at pthread_create.c:309
#16 0x00007ffff5070ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) bt full
#0  g_source_unref_internal (source=source@entry=0x7fffe0002bc0, context=context@entry=0xa85020, have_lock=have_lock@entry=1) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2027
        old_cb_data = 0x0
        old_cb_funcs = 0x0
        __FUNCTION__ = "g_source_unref_internal"
#1  0x00007ffff2e5d1a9 in g_source_destroy_internal (source=0x7fffe0002bc0, context=0xa85020, have_lock=0) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:1201
        tmp_list = <optimized out>
        old_cb_data = 0x7fffe0000fc0
        old_cb_funcs = <optimized out>
#2  0x00007ffff2e5e925 in g_source_remove (tag=214464) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2239
        source = 0x7fffe0002bc0
        __FUNCTION__ = "g_source_remove"
#3  0x00007ffff6515af7 in GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent) () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
No symbol table info available.
#4  0x00007ffff6114712 in GSocket::Write(char const*, int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
No symbol table info available.
#5  0x00007ffff610fe78 in wxSocketBase::_Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
No symbol table info available.
#6  0x00007ffff610feb4 in wxSocketBase::Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
No symbol table info available.
#7  0x00000000005aa514 in Write (nbytes=46, buffer=0x4381550, this=0x43f3890) at ../../src/LibSocket.h:266
No locals.
#8  CSocketClientProxy::Write (this=this@entry=0x43f3890, buffer=0x4381550, nbytes=nbytes@entry=46) at ../../src/Proxy.cpp:1324
        lock = {m_isOk = true, m_mutex = @0x43f39c8}
#9  0x00000000004a401f in CEncryptedStreamSocket::Write (this=this@entry=0x43f3890, lpBuf=<optimized out>, nBufLen=nBufLen@entry=46) at ../../src/EncryptedStreamSocket.cpp:210
No locals.
#10 0x00000000004a2bc3 in CEMSocket::Send (this=0x43f3890, maxNumberOfBytesToSend=<optimized out>, minFragSize=<optimized out>, onlyAllowedToSendControlPacket=true) at ../../src/EMSocket.cpp:563
        tosend = 46
        result = <optimized out>
        bWasLongTimeSinceSend = <optimized out>
        sentControlPacketBytesThisCall = 0
        returnVal = <optimized out>
        lock = {m_isOk = <optimized out>, m_mutex = @0x43f3d08}
        anErrorHasOccured = <optimized out>
        sentStandardPacketBytesThisCall = 0
#11 0x0000000000480eb9 in SendControlData (minFragSize=<optimized out>, maxNumberOfBytesToSend=<optimized out>, this=0x43f3890) at ../../src/EMSocket.h:69
No locals.
#12 CClientTCPSocket::SendControlData (this=0x43f3890, maxNumberOfBytesToSend=<optimized out>, overchargeMaxBytesToSend=<optimized out>) at ../../src/ClientTCPSocket.cpp:2045
        returnStatus = <optimized out>
#13 0x00000000004eb016 in UploadBandwidthThrottler::Entry (this=0x36c93e0) at ../../src/UploadBandwidthThrottler.cpp:381
        socketSentBytes = {success = false, sentBytesStandardPackets = 0, sentBytesControlPackets = 0}
        socket = 0x43f3ca0
        slots = <optimized out>
        spentBytes = 0
        spentOverhead = 0
        sendLock = {m_isOk = <optimized out>, m_mutex = @0x36c9400}
        minBytesToSpend = <optimized out>
        timeSinceLastLoop = <optimized out>
        minFragSize = 1300
        doubleSendSize = 2600
        sleepTime = <optimized out>
        thisLoopTick = 748032443
        bytesToSpend = 14
        extraSleepTime = 1
        lastLoopTick = 748032443
        allowedDataRate = <optimized out>
        rememberedSlotCounter = 1
        sendLock = <optimized out>
#14 0x00007ffff5e774e5 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
No symbol table info available.
#15 0x00007ffff7bc70a4 in start_thread (arg=0x7fffec5a7700) at pthread_create.c:309
---Type <return> to continue, or q <return> to quit---
        __res = <optimized out>
        pd = 0x7fffec5a7700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737158739712, -1311687854287267127, 1, 140737354125408, 57447392, 140737158739712, 1311720035986922185, 1311705966615026377}, mask_was_saved = 0}},
          priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#16 0x00007ffff5070ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
(gdb) thread apply all bt

Thread 5 (Thread 0x7fffea5a1700 (LWP 30874)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007ffff5e761e6 in wxConditionInternal::WaitTimeout(unsigned long) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#2  0x00007ffff5e76d6a in wxSemaphoreInternal::WaitTimeout(unsigned long) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#3  0x00000000005dca1e in CTimerThread::Entry (this=0x41f5600) at ../../src/Timer.cpp:66
#4  0x00007ffff5e774e5 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#5  0x00007ffff7bc70a4 in start_thread (arg=0x7fffea5a1700) at pthread_create.c:309
#6  0x00007ffff5070ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7fffec5a7700 (LWP 30871)):
#0  g_source_unref_internal (source=source@entry=0x7fffe0002bc0, context=context@entry=0xa85020, have_lock=have_lock@entry=1) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2027
#1  0x00007ffff2e5d1a9 in g_source_destroy_internal (source=0x7fffe0002bc0, context=0xa85020, have_lock=0) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:1201
#2  0x00007ffff2e5e925 in g_source_remove (tag=214464) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:2239
#3  0x00007ffff6515af7 in GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent) () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#4  0x00007ffff6114712 in GSocket::Write(char const*, int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#5  0x00007ffff610fe78 in wxSocketBase::_Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#6  0x00007ffff610feb4 in wxSocketBase::Write(void const*, unsigned int) () from /usr/lib/x86_64-linux-gnu/libwx_baseu_net-2.8.so.0
#7  0x00000000005aa514 in Write (nbytes=46, buffer=0x4381550, this=0x43f3890) at ../../src/LibSocket.h:266
#8  CSocketClientProxy::Write (this=this@entry=0x43f3890, buffer=0x4381550, nbytes=nbytes@entry=46) at ../../src/Proxy.cpp:1324
#9  0x00000000004a401f in CEncryptedStreamSocket::Write (this=this@entry=0x43f3890, lpBuf=<optimized out>, nBufLen=nBufLen@entry=46) at ../../src/EncryptedStreamSocket.cpp:210
#10 0x00000000004a2bc3 in CEMSocket::Send (this=0x43f3890, maxNumberOfBytesToSend=<optimized out>, minFragSize=<optimized out>, onlyAllowedToSendControlPacket=true) at ../../src/EMSocket.cpp:563
#11 0x0000000000480eb9 in SendControlData (minFragSize=<optimized out>, maxNumberOfBytesToSend=<optimized out>, this=0x43f3890) at ../../src/EMSocket.h:69
#12 CClientTCPSocket::SendControlData (this=0x43f3890, maxNumberOfBytesToSend=<optimized out>, overchargeMaxBytesToSend=<optimized out>) at ../../src/ClientTCPSocket.cpp:2045
#13 0x00000000004eb016 in UploadBandwidthThrottler::Entry (this=0x36c93e0) at ../../src/UploadBandwidthThrottler.cpp:381
#14 0x00007ffff5e774e5 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#15 0x00007ffff7bc70a4 in start_thread (arg=0x7fffec5a7700) at pthread_create.c:309
#16 0x00007ffff5070ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7ffff7f84a00 (LWP 30856)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff2ea39a9 in g_mutex_lock_slowpath (mutex=mutex@entry=0xa85020) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gthread-posix.c:1314
#2  0x00007ffff2ea4372 in g_mutex_lock (mutex=mutex@entry=0xa85020) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gthread-posix.c:1338
#3  0x00007ffff2e5f76f in g_main_context_check (context=context@entry=0xa85020, max_priority=2147483647, fds=fds@entry=0x43ddf10, n_fds=n_fds@entry=17)
    at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:3568
#4  0x00007ffff2e5fe83 in g_main_context_iterate (context=0xa85020, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:3778
#5  0x00007ffff2e60272 in g_main_loop_run (loop=0x41bf8b0) at /build/glib2.0-dt6trg/glib2.0-2.42.0/./glib/gmain.c:3975
#6  0x00007ffff4a6d4b7 in IA__gtk_main () at /build/gtk+2.0-Gthrko/gtk+2.0-2.24.25/gtk/gtkmain.c:1257
#7  0x00007ffff65149ea in wxEventLoop::Run() () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#8  0x00007ffff659e8ab in wxAppBase::MainLoop() () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#9  0x00007ffff5e1d2fa in wxEntry(int&, wchar_t**) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#10 0x0000000000441452 in main (argc=1, argv=<optimized out>) at ../../src/amule-gui.cpp:93
~~~~