Closed pphaneuf closed 10 years ago
I'll take a look to see if I can reproduce on Linux (and then valgrind it) or Mac OS X.
Issue 99 has been merged into this issue.
skelton/common/net.cpp:1306
due to optimizations>) at skelton/common/net.cpp:913
==504== Invalid read of size 4 ==504== at 0x80E6772: std::_List_const_iteratorNet::Net_receive_cb::operator++() (stl_list.h:224) ==504== by 0x80E1747: Net::packetreceived(Netbuf, bool) (net.cpp:1305) ==504== by 0x80E5556: Net::step(bool) (net.cpp:913) ==504== by 0x80AA1EF: Net_starter::Net_module::step() (net_stuff.cpp:45) ==504== by 0x80E93C9: Executor::step() (overmind.cpp:127) ==504== by 0x80E97D1: Overmind::step() (overmind.cpp:71) ==504== by 0x804E886: startgame() (quadra.cpp:2313) ==504== by 0x80EFE8E: main (main.cpp:141) ==504== Address 0x5495340 is 0 bytes inside a block of size 12 free'd ==504== at 0x40222EC: operator delete(void) (vg_replace_malloc.c:342) ==504== by 0x80E716C: __gnu_cxx::new_allocatorstd::_List_node<Net::Net_receive_cb
::deallocate(std::_List_nodeNet::Net_receivecb*, unsigned) (new_allocator.h:97) ==504== by 0x80E7191: std::_List_base<Net::Net_receivecb, std::allocatorNet::Net_receive_cb ::_M_put_node(std::_List_nodeNet::Net_receive_cb_) (stl_list.h:321) ==504== by 0x80E807C: std::list<Net::Net_receivecb, std::allocatorNet::Net_receive_cb ::_M_erase(std::_List_iteratorNet::Net_receive_cb) (stl_list.h:1172) ==504== by 0x80E80AE: std::list<Net::Net_receive_cb, std::allocator<Net::Net_receive_cb> ::erase(std::_List_iteratorNet::Net_receive_cb) (list.tcc:99) ==504== by 0x80E1F36: Net::removewatch(unsigned short, Netcallable) (net.cpp:1008) ==504== by 0x80EAEC0: Exec_ping::netcall(Packet) (packet.cpp:124) ==504== by 0x80E1723: Net::packetreceived(Net_buf, bool) (net.cpp:1309) ==504== by 0x80E5556: Net::step(bool) (net.cpp:913) ==504== by 0x80AA1EF: Net_starter::Net_module::step() (net_stuff.cpp:45) ==504== by 0x80E93C9: Executor::step() (overmind.cpp:127) ==504== by 0x80E97D1: Overmind::step() (overmind.cpp:71)
Valgrind to the rescue, once again. Should be fixed by r719. Can you verify?
Nice, r719 compiles fine and is playable again. (VS08,WinXP)
Awesome, thanks!
Issue 96 has been merged into this issue.
What steps will reproduce the problem?
Trunk compiled with VS08 on Windows XP SP3.
Trace:
const wchar_t * file=0x00535c58, unsigned int line=242) Zeile 24 C++ > quadra_debug.exe!std::list<Net::Net_receive_cb ,std::allocator<Net::Net_receive_cb > >::_Const_iterator<1>::operator++() Zeile 242 + 0x14 Bytes C++ quadra_debug.exe!Net::packetreceived(Net_buf * nb=0x0012cb90, bool tcp=true) Zeile 1305 + 0x64 Bytes C++ quadra_debug.exe!Net::step(bool loop_only=false) Zeile 914 C++ quadra_debug.exe!Net_starter::Net_module::step() Zeile 46 C++ quadra_debug.exe!Executor::step() Zeile 130 C++ quadra_debug.exe!Overmind::step() Zeile 72 C++ quadra_debug.exe!start_game() Zeile 2314 C++ quadra_debug.exe!WinMain(HINSTANCE * hInstance=0x00400000, HINSTANCE
[Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für kernel32.dll]