Almost the same bug as before. I guess I was trying to switch to the amule window by double clicking its icon in the docker. It didn't yield any result, so I clicked the amule icon in the xfce4-iconbox and saw an empty window. So it's another amule crash, and here's its backtrace:
Most of the crashes came from ::DrawCell functions, could this be a thread synchronization issue?
Could this be a bug in wxWindows (or bug caused by -O3 for wxWindows)?
[New Thread -1320801360 (LWP 7480)]
[Thread -1320801360 (zombie) exited]
[New Thread -1329194064 (LWP 10882)]
[Thread -1329194064 (zombie) exited]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1222027584 (LWP 420)]
0x0806cbc9 in wxStringBase::size (this=0x94deb14) at string.h:367
367 size_type size() const { return GetStringData()->nDataLength; }
(gdb) bt full
#0 0x0806cbc9 in wxStringBase::size (this=0x94deb14) at string.h:367
No locals.
#1 0x0806cba3 in wxStringBase::empty (this=0x94deb14) at string.h:377
No locals.
#2 0x0806d4cd in wxString::IsEmpty (this=0x94deb14) at string.h:691
No locals.
#3 0x08181adf in CUpDownClient::GetScore (this=0x94dea98, sysvalue=false, isdownloading=false,
onlybasevalue=true) at UploadClient.cpp:84
pFile = (const class CKnownFile *) 0xbfc42d48
filepriority = 0
fBaseValue = -1.53264046
modif = 4.05716686e-34
#4 0x08217c5b in CQueuedView::DrawCell (client=0x94dea98, column=4, dc=0x8708e20, rect=@0xbfc42df0)
at ClientListCtrl.cpp:838
buffer = { = {static npos = 4294967295, m_pchData = 0xb7b369ac}, }
#5 0x08215ef8 in CClientListCtrl::OnDrawItem (this=0x8d3ca98, item=2, dc=0x8708e20, rect=@0xbfc42ec0,
rectHL=@0xbfc42ed0, highlighted=true) at ClientListCtrl.cpp:489
clipper = {m_dc = @0x8708e20}
width = 54
i = 4
client = (CUpDownClient *) 0x94dea98
cur_rect = {x = 503, y = 0, width = 46, height = 20}
view = (const ClientListView &) @0x8706760: {m_title = { = {static npos = 4294967295,
m_pchData = 0x872355c}, },
m_init = 0x821756c ,
m_draw = 0x8217b3c ,
m_sort = 0x8218022 }
#6 0x08343c37 in MuleExtern::wxListMainWindow::OnPaint (this=0x8d3d968) at listctrl.cvs.cpp:2618
rect = {x = 0, y = 0, width = 1089, height = 20}
highl = {x = 0, y = 0, width = 1089, height = 20}
line = 2
dbDC =
buffer =
visibleTo = 4
rectLine = {x = 1, y = 40, width = 1089, height = 20}
xOrig = 0
lineHeight = 20
visibleFrom = 0
yOrig = 0
after = {x = 1, y = 4260, width = 1121, height = 20}
width = -1219933968
---Type to continue, or q to quit---
height = -1220208583
dc =
dev_x = 0
dev_y = 0
#7 0xb7a79d96 in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
No symbol table info available.
#8 0xb7b0f4fb in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.6.so.0
No symbol table info available.
#9 0xb7b0f7c0 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
No symbol table info available.
#10 0xb7b10429 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
No symbol table info available.
#11 0xb7cbe464 in wxWindow::GtkSendPaintEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
No symbol table info available.
#12 0xb7cbe75f in wxWindow::GtkSendPaintEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
No symbol table info available.
#13 0xb773c22b in gtk_marshal_VOID__UINT_STRING () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x08d358bc in ?? ()
No symbol table info available.
#15 0xbfc438d0 in ?? ()
No symbol table info available.
#16 0x08d3d968 in ?? ()
No symbol table info available.
#17 0xb74db668 in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#18 0x00000000 in ?? ()
No symbol table info available.
(gdb) thread apply all bt
Thread 5 (Thread -1267295312 (LWP 428)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x46c3105c in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0
#2 0xb7b0c17b in wxConditionInternal::WaitTimeout () from /usr/lib/libwx_baseu-2.6.so.0
#3 0xb7b0c1e3 in wxCondition::WaitTimeout () from /usr/lib/libwx_baseu-2.6.so.0
#4 0xb7b0c672 in wxSemaphoreInternal::WaitTimeout () from /usr/lib/libwx_baseu-2.6.so.0
#5 0xb7b0eb63 in wxSemaphore::WaitTimeout () from /usr/lib/libwx_baseu-2.6.so.0
#6 0x082b94a3 in CTimerThread::Entry (this=0x8891e48) at Timer.cpp:63
#7 0xb7b0db31 in wxThreadInternal::PthreadStart () from /usr/lib/libwx_baseu-2.6.so.0
#8 0xb7b0dbab in wxPthreadStart () from /usr/lib/libwx_baseu-2.6.so.0
#9 0x46c2ec0b in start_thread () from /lib/tls/libpthread.so.0
#10 0x46ac4ebe in clone () from /lib/tls/libc.so.6
Thread 2 (Thread -1242117200 (LWP 424)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x46c33f26 in __nanosleep_nocancel () from /lib/tls/libpthread.so.0
#2 0xb7b13459 in wxMicroSleep () from /usr/lib/libwx_baseu-2.6.so.0
#3 0xb7b1347f in wxMilliSleep () from /usr/lib/libwx_baseu-2.6.so.0
#4 0xb7b0cd2b in wxThread::Sleep () from /usr/lib/libwx_baseu-2.6.so.0
#5 0x0817606d in UploadBandwidthThrottler::Entry (this=0x8da5ff0) at UploadBandwidthThrottler.cpp:319
#6 0xb7b0db31 in wxThreadInternal::PthreadStart () from /usr/lib/libwx_baseu-2.6.so.0
#7 0xb7b0dbab in wxPthreadStart () from /usr/lib/libwx_baseu-2.6.so.0
#8 0x46c2ec0b in start_thread () from /lib/tls/libpthread.so.0
#9 0x46ac4ebe in clone () from /lib/tls/libc.so.6
Thread 1 (Thread -1222027584 (LWP 420)):
#0 0x0806cbc9 in wxStringBase::size (this=0x94deb14) at string.h:367
#1 0x0806cba3 in wxStringBase::empty (this=0x94deb14) at string.h:377
#2 0x0806d4cd in wxString::IsEmpty (this=0x94deb14) at string.h:691
#3 0x08181adf in CUpDownClient::GetScore (this=0x94dea98, sysvalue=false, isdownloading=false,
onlybasevalue=true) at UploadClient.cpp:84
#4 0x08217c5b in CQueuedView::DrawCell (client=0x94dea98, column=4, dc=0x8708e20, rect=@0xbfc42df0)
at ClientListCtrl.cpp:838
#5 0x08215ef8 in CClientListCtrl::OnDrawItem (this=0x8d3ca98, item=2, dc=0x8708e20, rect=@0xbfc42ec0,
rectHL=@0xbfc42ed0, highlighted=true) at ClientListCtrl.cpp:489
#6 0x08343c37 in MuleExtern::wxListMainWindow::OnPaint (this=0x8d3d968) at listctrl.cvs.cpp:2618
#7 0xb7a79d96 in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
#8 0xb7b0f4fb in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.6.so.0
#9 0xb7b0f7c0 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
#10 0xb7b10429 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
---Type to continue, or q to quit---
#11 0xb7cbe464 in wxWindow::GtkSendPaintEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#12 0xb7cbe75f in wxWindow::GtkSendPaintEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#13 0xb773c22b in gtk_marshal_VOID__UINT_STRING () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x08d358bc in ?? ()
#15 0xbfc438d0 in ?? ()
#16 0x08d3d968 in ?? ()
#17 0xb74db668 in ?? () from /usr/lib/libgobject-2.0.so.0
#18 0x00000000 in ?? ()
Also, I've read some other bug reports, and I'm going trying recompiling wxWindows with less 'aggressive' CFLAGS,.
Right now, i was using these (from my make.conf - gentoo):
CFLAGS="-march=athlon-tbird -mtune=athlon-tbird -O3 -pipe -fomit-frame-pointer -fno-stack-protector -fno-stack-protector-all -mmmx -m3dnow"
CXXFLAGS="${CFLAGS}"
baron@baron ~ $ wx-config --cxxflags
-I/usr/lib/wx/include/gtk2-unicode-release-2.6 -I/usr/include/wx-2.6 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA