Hi, wormux is a great game :)
I got the following crash from wormux-0.8.2 while playing a networking game on OpenBSD. I don't know how to reproduce, but the crash has happened mulitple times, not just once. It seems to occur randomly, I suspect a threading issue. The core dump shows that STL code is running into a bad pointer, see below. Is this a known problem? (gdb warns that the binary is newer than the core file. This is because I rebuilt the binary with debug symbols to be able to read a meaningful trace from the core file.) $ gdb `which wormux` wormux.core GNU gdb 6.3 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-unknown-openbsd4.4"... warning: exec file is newer than core file. Core was generated by `wormux'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/libpthread.so.11.1...done. Loaded symbols for /usr/lib/libpthread.so.11.1 Reading symbols from /usr/local/lib/libSDL_net.so.1.1...done. Loaded symbols for /usr/local/lib/libSDL_net.so.1.1 Reading symbols from /usr/local/lib/libSDL_ttf.so.7.0...done. Loaded symbols for /usr/local/lib/libSDL_ttf.so.7.0 Reading symbols from /usr/local/lib/libSDL_mixer.so.3.0...done. Loaded symbols for /usr/local/lib/libSDL_mixer.so.3.0 Reading symbols from /usr/local/lib/libSDL_image.so.2.0...done. Loaded symbols for /usr/local/lib/libSDL_image.so.2.0 Reading symbols from /usr/local/lib/libpng.so.8.0...done. Loaded symbols for /usr/local/lib/libpng.so.8.0 Reading symbols from /usr/local/lib/libSDL_gfx.so.13.0...done. Loaded symbols for /usr/local/lib/libSDL_gfx.so.13.0 Reading symbols from /usr/local/lib/libSDL.so.8.0...done. Loaded symbols for /usr/local/lib/libSDL.so.8.0 Reading symbols from /usr/X11R6/lib/libX11.so.11.1...done. Loaded symbols for /usr/X11R6/lib/libX11.so.11.1 Reading symbols from /usr/lib/libz.so.4.1...done. Loaded symbols for /usr/lib/libz.so.4.1 Reading symbols from /usr/local/lib/libxml2.so.10.0...done. Loaded symbols for /usr/local/lib/libxml2.so.10.0 Reading symbols from /usr/lib/libm.so.5.0...done. Loaded symbols for /usr/lib/libm.so.5.0 Reading symbols from /usr/local/lib/libintl.so.4.0...done. Loaded symbols for /usr/local/lib/libintl.so.4.0 Reading symbols from /usr/local/lib/libiconv.so.5.0...done. Loaded symbols for /usr/local/lib/libiconv.so.5.0 Reading symbols from /usr/local/lib/libcurl.so.12.0...done. Loaded symbols for /usr/local/lib/libcurl.so.12.0 Reading symbols from /usr/local/lib/libidn.so.16.30...done. Loaded symbols for /usr/local/lib/libidn.so.16.30 Reading symbols from /usr/lib/libssl.so.12.0...done. Loaded symbols for /usr/lib/libssl.so.12.0 Reading symbols from /usr/lib/libcrypto.so.15.0...done. Loaded symbols for /usr/lib/libcrypto.so.15.0 Reading symbols from /usr/lib/libstdc++.so.46.0...done. Loaded symbols for /usr/lib/libstdc++.so.46.0 Symbols already loaded for /usr/lib/libpthread.so.11.1 Reading symbols from /usr/lib/libc.so.50.0...done. Loaded symbols for /usr/lib/libc.so.50.0 Reading symbols from /usr/lib/libsndio.so.3.2...done. Loaded symbols for /usr/lib/libsndio.so.3.2 Reading symbols from /usr/X11R6/lib/libXau.so.9.0...done. Loaded symbols for /usr/X11R6/lib/libXau.so.9.0 Reading symbols from /usr/X11R6/lib/libXdmcp.so.9.0...done. Loaded symbols for /usr/X11R6/lib/libXdmcp.so.9.0 Reading symbols from /usr/X11R6/lib/libXext.so.10.0...done. Loaded symbols for /usr/X11R6/lib/libXext.so.10.0 Reading symbols from /usr/X11R6/lib/libXrender.so.5.0...done. Loaded symbols for /usr/X11R6/lib/libXrender.so.5.0 Reading symbols from /usr/X11R6/lib/libXrandr.so.6.0...done. Loaded symbols for /usr/X11R6/lib/libXrandr.so.6.0 Reading symbols from /usr/lib/libusbhid.so.3.0...done. Loaded symbols for /usr/lib/libusbhid.so.3.0 Reading symbols from /usr/X11R6/lib/libfreetype.so.16.1...done. Loaded symbols for /usr/X11R6/lib/libfreetype.so.16.1 Reading symbols from /usr/local/lib/libmikmod.so.2.4...done. Loaded symbols for /usr/local/lib/libmikmod.so.2.4 Reading symbols from /usr/local/lib/libsmpeg.so.2.0...done. Loaded symbols for /usr/local/lib/libsmpeg.so.2.0 Reading symbols from /usr/local/lib/libogg.so.5.3...done. Loaded symbols for /usr/local/lib/libogg.so.5.3 Reading symbols from /usr/local/lib/libvorbis.so.6.0...done. Loaded symbols for /usr/local/lib/libvorbis.so.6.0 Reading symbols from /usr/local/lib/libvorbisfile.so.5.0...done. Loaded symbols for /usr/local/lib/libvorbisfile.so.5.0 Reading symbols from /usr/local/lib/libjpeg.so.62.0...done. Loaded symbols for /usr/local/lib/libjpeg.so.62.0 Reading symbols from /usr/local/lib/libtiff.so.38.2...done. Loaded symbols for /usr/local/lib/libtiff.so.38.2 Reading symbols from /usr/libexec/ld.so...done. Loaded symbols for /usr/libexec/ld.so Reading symbols from /usr/X11R6/lib/libXcursor.so.4.0...done. Loaded symbols for /usr/X11R6/lib/libXcursor.so.4.0 Reading symbols from /usr/X11R6/lib/libXfixes.so.5.0...done. Loaded symbols for /usr/X11R6/lib/libXfixes.so.5.0 #0 std::_Rb_tree<std::string, std::pair<std::string const, member_mvt>, std::_Select1st<std::pair<std::string const, member_mvt> >, std::less<std::string>, std::allocator<std::pair<std::string const, member_mvt> > >::find ( this=0x700032, _...@0x8a6feac0) at stl_tree.h:648 648 _M_root() const { return (_Link_type&) _M_header->_M_parent; } (gdb) p _M_header Cannot access memory at address 0x700032 (gdb) bt #0 std::_Rb_tree<std::string, std::pair<std::string const, member_mvt>, std::_Select1st<std::pair<std::string const, member_mvt> >, std::less<std::string>, std::allocator<std::pair<std::string const, member_mvt> > >::find ( this=0x700032, _...@0x8a6feac0) at stl_tree.h:648 #1 0x1c012634 in Body::ApplyMovement (this=0x89ade280, mvt=0x8732f500, frame=1) at stl_map.h:468 #2 0x1c013279 in Body::Build (this=0x89ade280) at character/body.cpp:401 #3 0x1c01be38 in Character::Draw (this=0x87335008) at character/character.cpp:400 #4 0x1c03ead8 in Game::Draw (this=0x8bae7f80) at game/game.cpp:356 #5 0x1c03ecf6 in Game::CallDraw (this=0x8bae7f80) at game/game.cpp:406 #6 0x1c03f23c in Game::MainLoop (this=0x8bae7f80) at game/game.cpp:522 #7 0x1c042c29 in GameClassic::EndOfGame (this=0x8bae7f80) at game/game_classic.cpp:59 #8 0x1c03ee4f in Game::Run (this=0x8bae7f80) at game/game.cpp:446 #9 0x1c03d643 in Game::Start (this=0x8bae7f80) at game/game.cpp:128 #10 0x1c0dc0ce in NetworkMenu::signal_ok (this=0xcfbc6790) at menu/network_menu.cpp:267 #11 0x1c0d3cd4 in Menu::mouse_ok (this=0xcfbc6790) at menu/menu.cpp:100 #12 0x1c0d3d8c in Menu::BasicOnClickUp (this=0xcfbc6790, mousepositi...@0xcfbc6738) at menu/menu.cpp:117 #13 0x1c0d40ec in Menu::Run (this=0xcfbc6790) at menu/menu.cpp:266 #14 0x1c0d91b6 in NetworkConnectionMenu::signal_ok (this=0xcfbc6790) at menu/network_connection_menu.cpp:441 #15 0x1c0d3cd4 in Menu::mouse_ok (this=0xcfbc6950) at menu/menu.cpp:100 #16 0x1c0d3d8c in Menu::BasicOnClickUp (this=0xcfbc6950, mousepositi...@0xcfbc68f8) at menu/menu.cpp:117 #17 0x1c0d40ec in Menu::Run (this=0xcfbc6950) at menu/menu.cpp:266 #18 0x1c08b820 in AppWormux::Main (this=0x80f8e040) at main.cpp:130 #19 0x1c08dd8b in main (argc=1, argv=0xcfbc6b4c) at main.cpp:435 (gdb) info frame Stack level 0, frame at 0xcfbc5f40: eip = 0x1c015ff6 in std::_Rb_tree<std::string, std::pair<std::string const, member_mvt>, std::_Select1st<std::pair<std::string const, member_mvt> >, std::less<std::string>, std::allocator<std::pair<std::string const, member_mvt> > >::find(std::string const&) (stl_tree.h:648); saved eip 0x1c012634 called by frame at 0xcfbc60c0 source language c++. Arglist at 0xcfbc5f38, args: this=0x700032, _...@0x8a6feac0 Locals at 0xcfbc5f38, Previous frame's sp is 0xcfbc5f40 Saved registers: ebx at 0xcfbc5f2c, ebp at 0xcfbc5f38, esi at 0xcfbc5f30, edi at 0xcfbc5f34, eip at 0xcfbc5f3c (gdb) I'll happily test patches. Thanks, Stefan _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev