Hi, Stefan Sperling a écrit : > Hi, > > wormux is a great game :) >
thanks :) > 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? > No, it is not a known problem, thanks a lot for reporting it !!! >From what I see in the dump, it is related to the body (skin) management. Could you reproduce the game in local game ? Could you try 0.8.1 to see if the bug was already there ? I will have a further look in the next few days :) Regards, Matt (gentildemon) > (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 > > > _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev