I had this crash again, this time on an amule that hadn't been continued from any assertion failures or anything sketchy like that. And this time amule was not iconified, it was showing the shared files tab.
Once again, the "this" pointer seems to be corrupted, with a bit set in the high 32 that shouldn't be.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f00ff760780 (LWP 14828)]
CMuleTrayIcon::SetTrayIcon (this=0x1000439df20, Icon=2, percent=0) at ../../src/MuleTrayIcon.cpp:211
211 Bar_ySize = HighId_Icon_size;
(gdb) p *this
Cannot access memory at address 0x1000439df20
(gdb) x 0x439df20
0x439df20: 0x007832d0
(the segv was in thread 1)
(gdb) thread apply all bt full
Thread 4 (Thread 0x4241e950 (LWP 14888)):
#0 0x00007f00ff37055d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/debug/libpthread.so.0
No locals.
#1 0x00007f00fdb33fdd in wxConditionInternal::WaitTimeout (this=0x2d29460, milliseconds=100) at ../src/unix/threadpsx.cpp:405
curtime = {m_ll = 1226861061988}
temp = {m_ll = 988}
sec = 1226861061
millis = 988
tspec = {tv_sec = 1226861061, tv_nsec = 988000000}
err = 0
#2 0x00007f00fdb340a9 in wxCondition::WaitTimeout (this=0x84f7ee8, milliseconds=100) at ../include/wx/thrimpl.cpp:256
__FUNCTION__ = "WaitTimeout"
#3 0x00007f00fdb34d5b in wxSemaphoreInternal::WaitTimeout (this=0x84f7ee0, milliseconds=100) at ../src/unix/threadpsx.cpp:552
elapsed = {m_ll = 0}
remainingTime = 100
locker = {m_isOk = true, m_mutex = @0x84f7ee0}
startTime = {m_ll = 1226861061888}
#4 0x00007f00fdb34e3f in wxSemaphore::WaitTimeout (this=0x2d29df0, milliseconds=100) at ../include/wx/thrimpl.cpp:320
__FUNCTION__ = "WaitTimeout"
#5 0x000000000068e008 in CTimerThread::Entry (this=0x2d29db0) at ../../src/Timer.cpp:64
now = 18446744073709551100
sinceLast = 2938619
timeout = 0
evt = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x821b10, static ms_classInfo = {m_className = 0x7f00fdb730e0,
m_objectSize = 16, m_objectConstructor = 0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0, static sm_first = 0x7f00fea7bb80,
m_next = 0x7f00fdde9940, static sm_classTable = 0x2cb04d0}, m_refData = 0x0}, m_eventObject = 0x0, m_eventType = 10244,
m_timeStamp = 0, m_id = 6128, m_callbackUserData = 0x0, m_propagationLevel = 0, m_skipped = false, m_isCommandEvent = false,
static ms_classInfo = {m_className = 0x7f00fdb8aa30, m_objectSize = 64, m_objectConstructor = 0,
m_baseInfo1 = 0x7f00fdde9840, m_baseInfo2 = 0x0, static sm_first = 0x7f00fea7bb80, m_next = 0x7f00fddeb7e0,
static sm_classTable = 0x2cb04d0}}, <No data fields>}
lastEvent = 2795382528
#6 0x00007f00fdb35f32 in wxThreadInternal::PthreadStart (thread=0x2d29db0) at ../src/unix/threadpsx.cpp:766
__clframe = {__cancel_routine = 0x7f00fdb35de2 <wxPthreadCleanup>, __cancel_arg = 0x2d29db0, __do_it = 1,
__cancel_type = 0}
pthread = (wxThreadInternal *) 0x2d29b90
rc = 0
dontRunAtAll = false
__FUNCTION__ = "PthreadStart"
#7 0x00007f00fdb36092 in wxPthreadStart (ptr=0x2d29db0) at ../src/unix/threadpsx.cpp:718
No locals.
#8 0x00007f00ff36c3ea in start_thread (arg=<value optimized out>) at pthread_create.c:297
__res = <value optimized out>
pd = (struct pthread *) 0x4241e950
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -5813113401061893796, 8392704, 139642262913088, 0, 140733318822928,
-5813257979310073508, 5859836520223381852}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0,
cleanup = 0x0, canceltype = 0}}}
not_first_call = <value optimized out>
robust = <value optimized out>
#9 0x00007f00fcd80c6d in clone () from /usr/lib/debug/libc.so.6
fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0,
mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0,
fs_type = 0x0, fs_freq = 0, fs_passno = 0}}
__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x7f00fcdbe490
#10 0x0000000000000000 in ?? ()
No symbol table info available.
Current language: auto; currently asm
Thread 2 (Thread 0x4141c950 (LWP 14859)):
#0 0x00007f00ff373851 in nanosleep () from /usr/lib/debug/libpthread.so.0
No locals.
#1 0x00007f00fdb40992 in wxMicroSleep (microseconds=115000) at ../src/unix/utilsunx.cpp:191
tmReq = {tv_sec = 0, tv_nsec = 115000000}
---Type <return> to continue, or q <return> to quit---
#2 0x00007f00fdb409b0 in wxMilliSleep (milliseconds=115) at ../src/unix/utilsunx.cpp:212
No locals.
#3 0x00007f00fdb33d31 in wxThread::Sleep (milliseconds=115) at ../src/unix/threadpsx.cpp:986
No locals.
#4 0x0000000000559891 in UploadBandwidthThrottler::Entry (this=0x43841b0) at ../../src/UploadBandwidthThrottler.cpp:324
timeSinceLastLoop = 1
minFragSize = 1300
doubleSendSize = 2600
bytesToSpend = 8
sleepTime = 116
thisLoopTick = 2795382480
lastLoopTick = 2795382480
realBytesToSpend = -2591353
allowedDataRate = 22528
rememberedSlotCounter = 3
extraSleepTime = 1
sendLock = {m_isOk = 208, m_mutex = @0x7f00fdad11a9}
#5 0x00007f00fdb35f32 in wxThreadInternal::PthreadStart (thread=0x43841b0) at ../src/unix/threadpsx.cpp:766
__clframe = {__cancel_routine = 0x7f00fdb35de2 <wxPthreadCleanup>, __cancel_arg = 0x43841b0, __do_it = 1,
__cancel_type = 0}
pthread = (wxThreadInternal *) 0x41ad510
rc = 0
dontRunAtAll = false
__FUNCTION__ = "PthreadStart"
#6 0x00007f00fdb36092 in wxPthreadStart (ptr=0x43841b0) at ../src/unix/threadpsx.cpp:718
No locals.
#7 0x00007f00ff36c3ea in start_thread (arg=<value optimized out>) at pthread_create.c:297
__res = <value optimized out>
pd = (struct pthread *) 0x4141c950
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -5813113401061893796, 8392704, 139642262913088, 0, 140733318820704,
-5813251383314048676, 5859836520223381852}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0,
cleanup = 0x0, canceltype = 0}}}
not_first_call = <value optimized out>
robust = <value optimized out>
#8 0x00007f00fcd80c6d in clone () from /usr/lib/debug/libc.so.6
fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0,
mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0,
fs_type = 0x0, fs_freq = 0, fs_passno = 0}}
__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x7f00fcdbe490
#9 0x0000000000000000 in ?? ()
No symbol table info available.
Thread 1 (Thread 0x7f00ff760780 (LWP 14828)):
#0 CMuleTrayIcon::SetTrayIcon (this=0x1000439df20, Icon=2, percent=0) at ../../src/MuleTrayIcon.cpp:211
Bar_ySize = <value optimized out>
__FUNCTION__ = "SetTrayIcon"
#1 0x00000000005c06e2 in CamuleDlg::ShowTransferRate (this=0x3f24210) at ../../src/amuleDlg.cpp:832
buffer2 = {<wxStringBase> = {static npos = <error reading variable>
kBpsUp = 21.9580822
kBpsDown = 0
buffer = {<wxStringBase> = {static npos = <error reading variable>
label = <value optimized out>
bmp = <value optimized out>
__FUNCTION__ = "ShowTransferRate"
#2 0x00000000005c0aff in CamuleDlg::OnGUITimer (this=0x3f24210) at ../../src/amuleDlg.cpp:1069
msCur = 146976030
msGraphUpdate = <value optimized out>
sStatsUpdate = <value optimized out>
msPrev1 = 146975422
msPrev5 = 146976030
msPrevStats = 144522043
msPrevGraph = 146960010
---Type <return> to continue, or q <return> to quit---
#3 0x00007f00fda77633 in wxAppConsole::HandleEvent (this=0x2ced080, handler=0x3f24210,
func=0x5c0980 <CamuleDlg::OnGUITimer(wxTimerEvent&)>, event=@0x7fff0779f960) at ../src/common/appbase.cpp:322
No locals.
#4 0x00007f00fdb380bc in wxEvtHandler::ProcessEventIfMatches (entry=@0xdafae8, handler=0x3f24210, event=@0x7fff0779f960)
at ../src/common/event.cpp:1231
tableId1 = 6129
tableId2 = -1
#5 0x00007f00fdb3a064 in wxEventHashTable::HandleEvent (this=0xdaf8a0, event=@0x7fff0779f960, self=0x3f24210)
at ../src/common/event.cpp:906
n = 0
eventEntryTable = (const wxEventTableEntryPointerArray &) @0x2cd7a08: {<wxBaseArrayPtrVoid> = {m_nSize = 1, m_nCount = 1,
m_pItems = 0x4197ab0}, <No data fields>}
count = 1
eventType = 10096
eTTnode = (wxEventHashTable::EventTypeTable * const) 0x2cd7a00
#6 0x00007f00fdb3a19f in wxEvtHandler::ProcessEvent (this=0x3f24210, event=@0x7fff0779f960) at ../src/common/event.cpp:1293
__FUNCTION__ = "ProcessEvent"
#7 0x00007f00fe3a214a in wxTimerBase::Notify (this=0x4379010) at ../src/common/timercmn.cpp:57
event = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0xbc5650, static ms_classInfo = {m_className = 0x7f00fdb730e0,
m_objectSize = 16, m_objectConstructor = 0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0, static sm_first = 0x7f00fea7bb80,
m_next = 0x7f00fdde9940, static sm_classTable = 0x2cb04d0}, m_refData = 0x0}, m_eventObject = 0x4379010,
m_eventType = 10096, m_timeStamp = 0, m_id = 6129, m_callbackUserData = 0x0, m_propagationLevel = 0, m_skipped = false,
m_isCommandEvent = false, static ms_classInfo = {m_className = 0x7f00fdb8aa30, m_objectSize = 64, m_objectConstructor = 0,
m_baseInfo1 = 0x7f00fdde9840, m_baseInfo2 = 0x0, static sm_first = 0x7f00fea7bb80, m_next = 0x7f00fddeb7e0,
static sm_classTable = 0x2cb04d0}}, m_interval = 100, static ms_classInfo = {m_className = 0x7f00fe458078,
m_objectSize = 72, m_objectConstructor = 0x7f00fe3a2182 <wxTimerEvent::wxCreateObject()>, m_baseInfo1 = 0x7f00fddeb820,
m_baseInfo2 = 0x0, static sm_first = 0x7f00fea7bb80, m_next = 0x7f00fe749a80, static sm_classTable = 0x2cb04d0}}
__FUNCTION__ = "Notify"
#8 0x00007f00fe276a16 in timeout_callback (data=0x4379010) at ../src/gtk/timer.cpp:43
timer = (wxTimer *) 0x4379010
#9 0x00007f00fa74b4fb in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#10 0x00007f00fa74ad3b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#11 0x00007f00fa74e50d in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#12 0x00007f00fa74ea3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#13 0x00007f00fc5db7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x00007f00fe26afa9 in wxEventLoop::Run (this=0x2d7d580) at ../src/gtk/evtloop.cpp:76
activate = {m_evtLoopOld = 0x0}
exitcode = 0
__FUNCTION__ = "Run"
#15 0x00007f00fe30bb00 in wxAppBase::MainLoop (this=0x2ced080) at ../src/common/appcmn.cpp:312
mainLoop = {<wxEventLoopPtr> = {m_ptr = 0x2d7d580}, m_pp = 0x2ced0f8, m_pOld = 0x0}
#16 0x00007f00fe30b89d in wxAppBase::OnRun (this=0x2ced080) at ../src/common/appcmn.cpp:367
No locals.
#17 0x00007f00fdabfeee in wxEntry (argc=@0x7f00fdde8470, argv=0x2cdade0) at ../src/common/init.cpp:460
callOnExit = {<No data fields>}
cleanupOnExit = {<No data fields>}
#18 0x00007f00fdac0124 in wxEntry (argc=@0x7fff0779fd44, argv=0x7fff0779fe18) at ../src/common/init.cpp:472
No locals.
#19 0x00000000005ba202 in main (argc=1, argv=0x2) at ../../src/amule-gui.cpp:95
No locals.
Current language: auto; currently c++