bt:
(gdb) bt
#0 0x0000002a97e391a1 in raise () from /lib/libc.so.6
#1 0x0000002a97e3a69e in abort () from /lib/libc.so.6
#2 0x0000002a963677e1 in wxFatalSignalHandler () at ../src/unix/utilsunx.cpp:979
#3
#4 0x000000000052c062 in CKnownFile::GetPartCount() const (this=0x0) at KnownFile.h:144
#5 0x00000000005688c3 in CUpDownClient::SendFileRequest() (this=0x11f8890) at DownloadClient.cpp:263
#6 0x0000000000537a3d in CUpDownClient::ConnectionEstablished() (this=0x11f8890) at BaseClient.cpp:1387
#7 0x0000000000515cec in CClientReqSocket::ProcessPacket(char const*, unsigned, unsigned char) (this=0x1216ee0,
packet=0x119ab40 "\001", size=88, opcode=76 'L') at ListenSocket.cpp:236
#8 0x00000000005225b7 in CClientReqSocket::PacketReceived(Packet*) (this=0x1216ee0, packet=0x116daa0) at ListenSocket.cpp:2056
#9 0x00000000005288d1 in CEMSocket::OnReceive(int) (this=0x1216ee0, nErrorCode=0) at EMSocket.cpp:261
#10 0x00000000005227d6 in CClientReqSocket::OnReceive(int) (this=0x1216ee0, nErrorCode=0) at ListenSocket.cpp:2087
#11 0x0000000000522c01 in CClientReqSocketHandler::ClientReqSocketHandler(wxSocketEvent&) (this=0x112ac00, event=@0x132f740)
at ListenSocket.cpp:2208
#12 0x0000002a962e30d9 in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const (this=0x0,
handler=0x0, func={__pfn = 0x522b42 , __delta = 0},
event=@0x12b36b0) at ../src/common/appbase.cpp:305
#13 0x0000002a96362832 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) (entry=@0x0,
handler=0x12b36b0, event=@0x132f740) at app.h:300
#14 0x0000002a96362b77 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) (this=0x0, event=@0x132f740, self=0x112ac00)
at event.h:2119
#15 0x0000002a96363809 in wxEvtHandler::ProcessEvent(wxEvent&) (this=0x112ac00, event=@0x132f740) at ../src/common/event.cpp:1231
#16 0x0000002a963635e5 in wxEvtHandler::ProcessPendingEvents() (this=0x112ac00) at ../src/common/event.cpp:1122
#17 0x0000002a962e306e in wxAppConsole::ProcessPendingEvents() (this=0x0) at ../src/common/appbase.cpp:278
#18 0x0000002a95d88214 in wxapp_pending_callback () at app.h:300
#19 0x0000002a978adafe in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#20 0x0000002a978aabc2 in g_main_depth () from /usr/lib/libglib-2.0.so.0
#21 0x0000002a978abbf4 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#22 0x0000002a978abede in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#23 0x0000002a978ac48d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#24 0x0000002a96c67f91 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x0000002a95da0c6b in wxEventLoop::Run() (this=0x10b9770) at ../src/gtk/evtloop.cpp:83
#26 0x0000002a95e18d7a in wxAppBase::MainLoop() (this=0xb27410) at ../src/common/appcmn.cpp:272
#27 0x0000002a9631c0b7 in wxEntry(int&, char**) (argc=@0x0, argv=0x12b36b0) at app.h:300
#28 0x00000000006a7362 in main (argc=1, argv=0x7fbffff548) at amule-gui.cpp:300
bt full:
(gdb) bt full
#0 0x0000002a97e391a1 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x0000002a97e3a69e in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x0000002a963677e1 in wxFatalSignalHandler () at ../src/unix/utilsunx.cpp:979
No locals.
#3
No symbol table info available.
#4 0x000000000052c062 in CKnownFile::GetPartCount() const (this=0x0) at KnownFile.h:144
No locals.
#5 0x00000000005688c3 in CUpDownClient::SendFileRequest() (this=0x11f8890) at DownloadClient.cpp:263
packet = (Packet *) 0x12b36b0
dataFileReq = { = { = {_vptr.CFile = 0x73e5b0, m_fd = -1, m_error = false, fFilePath = { = {
static npos = 4294967195, m_pchData = 0x2a9636e258 ""}, }}, m_GrowBytes = 32, m_position = 0,
m_BufferSize = 0, m_FileSize = 0, m_delete = false, m_buffer = 0x0}, = {
_vptr.CFileDataIO = 0x73e698}, }
#6 0x0000000000537a3d in CUpDownClient::ConnectionEstablished() (this=0x11f8890) at BaseClient.cpp:1387
No locals.
#7 0x0000000000515cec in CClientReqSocket::ProcessPacket(char const*, unsigned, unsigned char) (this=0x1216ee0,
packet=0x119ab40 "\001", size=88, opcode=76 'L') at ListenSocket.cpp:236
No locals.
#8 0x00000000005225b7 in CClientReqSocket::PacketReceived(Packet*) (this=0x1216ee0, packet=0x116daa0) at ListenSocket.cpp:2056
bResult = false
uRawSize = 88
#9 0x00000000005288d1 in CEMSocket::OnReceive(int) (this=0x1216ee0, nErrorCode=0) at EMSocket.cpp:261
bPacketResult = true
toCopy = 88
ret = 528
rptr = 0x91a2be "ÅH"
GlobalReadBuffer = "ãP\000\000\000Løs½lN\016lbTFÂ\03152o@T\t\034ü\024\020\005\000\000\000\002\001\000\001\t\000*BelAtriX\003\001\000\021<\000\000\000\003\001\000ù@\022\000\000\003\001\000ú\e2\023\004\003\001\000û\200¬\000\000E2»Ò5\022ç\002*\212Ùý\002\001\021ÅH\000\000\000\223[\b\225uA\005ð\220ÛQçâ2;%zY1\000Sid.Meiers.Pirates.CD1.NOGROUP.ShareConnector.binP\000\000Y\"\000Sid.Meiers.Pirates.CD1.NOG"...
readMax = 2000000
rend = 0x91a470 "R\232ÍÇ7\022QT`\0225\022K%z[)\016\025|W#\021Ç6oaQTrÇ6\022Ãõôó5\022ñ\021\027\004â\016wrÆNá+ê9omQÁÒ½6\022>ñ5\002\222\020\224=iwË\016\205½Tëwyêko\005Õ\026ÑE6\022QTT&5\022?"
#10 0x00000000005227d6 in CClientReqSocket::OnReceive(int) (this=0x1216ee0, nErrorCode=0) at ListenSocket.cpp:2087
No locals.
#11 0x0000000000522c01 in CClientReqSocketHandler::ClientReqSocketHandler(wxSocketEvent&) (this=0x112ac00, event=@0x132f740)
at ListenSocket.cpp:2208
No locals.
#12 0x0000002a962e30d9 in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const (this=0x0,
handler=0x0, func={__pfn = 0x522b42 , __delta = 0},
event=@0x12b36b0) at ../src/common/appbase.cpp:305
No locals.
#13 0x0000002a96362832 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) (entry=@0x0,
handler=0x12b36b0, event=@0x132f740) at app.h:300
tableId1 = 0
tableId2 = 48
#14 0x0000002a96362b77 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) (this=0x0, event=@0x132f740, self=0x112ac00)
at event.h:2119
n = 0
eventEntryTable = (const wxEventTableEntryPointerArray &) @0xf8a638: { = {m_nSize = 1, m_nCount = 1,
m_pItems = 0xe3e060}, }
count = 1
#15 0x0000002a96363809 in wxEvtHandler::ProcessEvent(wxEvent&) (this=0x112ac00, event=@0x132f740) at ../src/common/event.cpp:1231
No locals.
#16 0x0000002a963635e5 in wxEvtHandler::ProcessPendingEvents() (this=0x112ac00) at ../src/common/event.cpp:1122
node = (class wxObjectListNode *) 0x12b36b0
#17 0x0000002a962e306e in wxAppConsole::ProcessPendingEvents() (this=0x0) at ../src/common/appbase.cpp:278
node = (class wxObjectListNode *) 0x12b36b0
#18 0x0000002a95d88214 in wxapp_pending_callback () at app.h:300
No locals.
#19 0x0000002a978adafe in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#20 0x0000002a978aabc2 in g_main_depth () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#21 0x0000002a978abbf4 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#22 0x0000002a978abede in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#23 0x0000002a978ac48d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#24 0x0000002a96c67f91 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#25 0x0000002a95da0c6b in wxEventLoop::Run() (this=0x10b9770) at ../src/gtk/evtloop.cpp:83
oldLoop = (wxEventLoop *) 0x0
#26 0x0000002a95e18d7a in wxAppBase::MainLoop() (this=0xb27410) at ../src/common/appcmn.cpp:272
mainLoop = { = {m_ptr = 0x10b9770}, m_pp = 0xb27488, m_pOld = 0x0}
#27 0x0000002a9631c0b7 in wxEntry(int&, char**) (argc=@0x0, argv=0x12b36b0) at app.h:300
callOnExit = {}
cleanupOnExit = {}
#28 0x00000000006a7362 in main (argc=1, argv=0x7fbffff548) at amule-gui.cpp:300
No locals.
(gdb)
As you can see in frame #4, this=0x0.
DownloadClient.cpp:263 contains this:
if (m_reqfile->GetPartCount() > 1) {
But m_reqfile wasn't NULL, it was 0x4 (if it was NULL, it would have exited the function in the beginning):
(gdb) frame 5
#5 0x00000000005688c3 in CUpDownClient::SendFileRequest() (this=0x11f8890) at DownloadClient.cpp:263
263 if (m_reqfile->GetPartCount() > 1) {
(gdb) print m_reqfile
$1 = (class CPartFile *) 0x4
The only places where I see m_reqfile gets set, is in the constructors of CUpDownFile and in CUpDownClient::SetRequestFile().
However, SetRequestFile() gets called in various places so I'm lost, because I can't reproduce the bug.. ?(
So I'm posting in case someone has a clue..

(I still have the core file)