Crash bug. *sigh*

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. :slight_smile: I shall do that from now on.