Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb43feb70 (LWP 9246)]
0xb7dbabb6 in memcpy () from /lib/i686/cmov/libc.so.6
(gdb) bt
#0 0xb7dbabb6 in memcpy () from /lib/i686/cmov/libc.so.6
#1 0xb43fe204 in ?? ()
#2 0x080c28b5 in CString::operator<< (this=0xb43fdc98, pString=...) at ../../server/src/CString.cpp:909
#3 0x080850af in CFileQueue::addPacket (this=0xab0f031c, pPacket=...) at ../../server/src/CFileQueue.cpp:31
#4 0x080d0af5 in TPlayer::sendPacket (this=0xab0efd08, pPacket=..., appendNL=true) at ../../server/src/TPlayer.cpp:664
#5 0x080dcaaf in TPlayer::leaveLevel (this=0xaaa81240, resetCache=false) at ../../server/src/TPlayer.cpp:1762
#6 0x080d89ed in TPlayer::warp (this=0xaaa81240, pLevelName=..., pX=4, pY=29, modTime=0) at ../../server/src/TPlayer.cpp:1400
#7 0x080e09d4 in TPlayer::msgPLI_LEVELWARP (this=0xaaa81240, pPacket=...) at ../../server/src/TPlayer.cpp:2250
#8 0x080d07ff in TPlayer::parsePacket (this=0xaaa81240, pPacket=...) at ../../server/src/TPlayer.cpp:599
#9 0x080cf81d in TPlayer::doMain (this=0xaaa81240) at ../../server/src/TPlayer.cpp:441
#10 0x080cf5fe in TPlayer::onRecv (this=0xaaa81240) at ../../server/src/TPlayer.cpp:362
#11 0x080bc5d5 in CSocketManager::update (this=0x82a146c, sec=0, usec=5000) at ../../server/src/CSocket.cpp:131
#12 0x0809a257 in TServer::doMain (this=0x82a1080) at ../../server/src/TServer.cpp:250
#13 0x08099af6 in TServer::operator() (this=0x82a1080) at ../../server/src/TServer.cpp:126
#14 0x0808b9db in boost::detail::thread_data<boost::reference_wrapper<TServer> >::run (this=0x8c66fd8) at /usr/include/boost/thread/detail/thread.hpp:81
#15 0xb7fd00d5 in thread_proxy () from /usr/lib/libboost_thread.so.1.42.0
#16 0xb7d32955 in start_thread () from /lib/i686/cmov/libpthread.so.0
#17 0xb7e1210e in clone () from /lib/i686/cmov/libc.so.6
You may want to think about keeping the core dumps around so I can log into your server and poke at them with gdb. I tried looking at the relevant sections, but I couldn’t determine what went wrong.
how do I generate core-dumps with gdb?
I don’t know how to save a core dump from within gdb. If I don’t have the ability to run a program myself through gdb, I have Linux dump the core for me.
ulimit -c unlimited
./gserver_d
The ulimit command will cause it to dump the core. I can then load the core into gdb later on:
gdb gserver_d core.12345
oooh, that’s how you do it. I shall do that from now on.