Anonymous | Login | 2024-11-21 15:38 UTC |
My View | View Issues | Change Log | Roadmap |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000989 | VCMI | Mechanics - Other | public | 2012-06-04 18:09 | 2014-05-30 17:41 | ||||
Reporter | douggie_m | ||||||||
Assigned To | Warmonger | ||||||||
Priority | normal | Severity | crash | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | Fixed in Version | 0.9 | |||||||
Summary | 0000989: Cannot launch single-player game with current SVN. | ||||||||
Description | Absolutely unable to begin new / load saved game with current SVN. | ||||||||
Steps To Reproduce | Just click inside main menu: "Load game" --> "Single scenario": Initialization of VCMI (together): 1360 Warning: object already assigned to this parent! [New Thread 0xf2d0c450 (LWP 12554)] Warning: object already assigned to this parent! Warning: object already has parent! Warning: object already has parent! Error: Too new file format! (file /root/.vcmi/Games/Autosave_5.vlgm1 ) Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xf2d0c450 (LWP 12554)] 0x0e15c938 in std::istream::read(char*, int) () from /usr/lib/powerpc-linux-gnu/libstdc++.so.6 (gdb) bt #0 0x0e15c938 in std::istream::read(char*, int) () from /usr/lib/powerpc-linux-gnu/libstdc++.so.6 #1 0x0fc47264 in CLoadFile::read (this=0xf2d0b438, data=0xf2d0b430, size=1) at Connection.cpp:305 0000002 0x10199750 in loadPrimitive<unsigned char> (data=@0xf2d0b430: 242 '\362', this=0xf2d0b438) at ../lib/Connection.h:766 0000003 invoke (data=@0xf2d0b430: 242 '\362', s=...) at ../lib/Connection.h:140 0000004 load<unsigned char> (data=@0xf2d0b430: 242 '\362', this=<optimized out>) at ../lib/Connection.h:758 0000005 operator>><unsigned char> (t=@0xf2d0b430: 242 '\362', this=<optimized out>) at ../lib/Connection.h:725 0000006 loadArray<unsigned char [8]> (data=..., this=<optimized out>) at ../lib/Connection.h:791 0000007 invoke (s=..., data=...) at ../lib/Connection.h:172 0000008 load<unsigned char [8]> (data=..., this=<optimized out>) at ../lib/Connection.h:758 0000009 operator>><unsigned char [8]> (t=..., this=<optimized out>) at ../lib/Connection.h:725 0000010 SelectionTab::parseGames (this=0x10453520, files=..., multi=<optimized out>) at CPreGame.cpp:1071 0000011 0x1019cc94 in SelectionTab::SelectionTab(CMenuScreen::EState, const boost::function<void(CMapInfo*)> &, CMenuScreen::EMultiMode) ( this=0x10453520, Type=<optimized out>, OnSelect=..., MultiPlayer=CMenuScreen::SINGLE_PLAYER) at CPreGame.cpp:1149 0000012 0x1019da70 in CSelectionScreen::CSelectionScreen (this=0x105d5c20, Type=CMenuScreen::loadGame, MultiPlayer=<optimized out>, Names=<optimized out>) at CPreGame.cpp:604 0000013 0x1019fa48 in CGPreGame::openSel (this=<optimized out>, screenType=<optimized out>, multi=<optimized out>) at CPreGame.cpp:451 0000014 0x1019fc6c in operator() (a2=<optimized out>, a1=<optimized out>, p=<optimized out>, this=<optimized out>) at /usr/include/boost/bind/mem_fn_template.hpp:280 0000015 operator()<boost::_mfi::mf2<void, CGPreGame, CMenuScreen::EState, CMenuScreen::EMultiMode>, boost::_bi::list0> (f=..., this=<optimized out>, a=...) at /usr/include/boost/bind/bind.hpp:392 0000016 operator() (this=<optimized out>) at /usr/include/boost/bind/bind_template.hpp:20 0000017 boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf2<void, CGPreGame, CMenuScreen::EState, CMenuScreen::EMultiMode>, boost::_bi::list3<boost::_bi::value<CGPreGame*>, boost::_bi::value<CMenuScreen::EState>, boost::_bi::value<CMenuScreen::EMultiMode> > >, void>::invoke (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153 0000018 0x10095674 in operator() (this=<optimized out>) at /usr/include/boost/function/function_template.hpp:760 0000019 CFunctionList<void ()>::operator()() const (this=<optimized out>) at ./UIFramework/../FunctionList.h:62 0000020 0x1008e450 in CAdventureMapButton::clickLeft (this=0x1044d860, down=..., previousState=<optimized out>) at ./UIFramework/CIntObjectClasses.cpp:309 0000021 0x100839c8 in CGuiHandler::handleEvent (this=0x102d1988, sEvent=0xe9e101a0) at ./UIFramework/CGuiHandler.cpp:255 0000022 0x10083e4c in CGuiHandler::handleEvents (this=0x102d1988) at ./UIFramework/CGuiHandler.cpp:147 0000023 0x10183f58 in CGPreGame::update (this=0x10391888) at CPreGame.cpp:491 0000024 0x10083058 in CGuiHandler::run (this=0x102d1988) at ./UIFramework/CGuiHandler.cpp:356 0000025 0x1014bf10 in operator() (t=..., this=<optimized out>) at /usr/include/boost/bind/mem_fn_template.hpp:70 0000026 operator()<boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list0> (f=..., this=<optimized out>, a=...) at /usr/include/boost/bind/bind.hpp:253 0000027 operator() (this=<optimized out>) at /usr/include/boost/bind/bind_template.hpp:20 0000028 boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list1<boost::reference_wrapper<CGuiHandler> > > >::run (this=<optimized out>) at /usr/include/boost/thread/detail/thread.hpp:62 0000029 0x0e46c40c in ?? () from /usr/lib/libboost_thread.so.1.49.0 0000030 0x0ddf37b0 in start_thread (arg=<optimized out>) at pthread_create.c:306 0000031 0x0df19b10 in clone () at ../sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S:123 After I removed old ~/.vcmi/Games directory, I still cannot begin an entirely new game: ---------- Initializing game graphics: 0 Message handler: 0 Initialization of VCMI (together): 1140 Warning: object already assigned to this parent! Warning: object already assigned to this parent! Warning: object already has parent! Warning: object already has parent! Establishing connection... Found endpoints: 0: 127.0.0.1:3030 Trying connection to 127.0.0.1:3030 (0) Established connection with VCMI 0.88b (server) Gamestate: 0 Server opened map properly. ---------- It is after I click "New Game" --> "Single scenario". It hangs forever after that, client is killable only via kill -9. | ||||||||
Additional Information | Rev 2711 was free from this bug, but it has another bug http://bugs.vcmi.eu/view.php?id=985 [^] (maybe current rev has it too, I just can't test it now due to this issue). | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | vcmi-client-shot-r2734-load_game.png [^] (989,387 bytes) 2012-06-05 15:28
Screenshot - 06132012 - 03:00:20 AM.png [^] (835,460 bytes) 2012-06-13 07:03 | ||||||||
Notes | |
(0002606) douggie_m (reporter) 2012-06-04 18:46 |
I forgot to say that "current SVN" was rev 2743. |
(0002607) Ivan (developer) 2012-06-04 21:17 |
Most possibly caused by these changes: http://sourceforge.net/apps/trac/vcmi/changeset/2735/#file2 [^] Try checking this bug with revisions 2734 and 2735. Not sure how these changes could broke big-endian support so I'd rather leave it to Tow. |
(0002608) douggie_m (reporter) 2012-06-05 07:42 |
I suppose using std::reverse is bad idea. Is this version number correct? (gdb) break Connection.cpp:337 No source file named Connection.cpp. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (Connection.cpp:337) pending. (gdb) run Starting program: /home/username/Development/VCMI/vcmi-svn/__dest/usr/bin/vcmiclient ... ... (click "Load Game" -> "Single Scenario") ... ... [Switching to Thread 0xf2c26450 (LWP 18992)] Breakpoint 1, CLoadFile::openNextFile (this=0xf2c25438, fname=..., minimalVersion=732) at Connection.cpp:338 warning: Source file is more recent than executable. 338 { (gdb) s Error: Too new file format! (file /home/username/.vcmi/Games/Autosave_4.vlgm1 ) 339 auto versionptr = (char*)&myVersion; (gdb) p myVersion $1 = 3691118592 (gdb) p /fx myVersion $2 = 0xdc020000 (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x0e15c938 in std::istream::read(char*, int) () from /usr/lib/powerpc-linux-gnu/libstdc++.so.6 |
(0002609) Tow (developer) 2012-06-05 12:35 |
Uhm, so there are two issues — starting a new game fails and opening a save game list fails, right? For the load game problem: As far as I see, the last message before crash is "Error: Too new file format! (file /root/.vcmi/Games/Autosave_5.vlgm1 )". It means that it didn't enter the endianess branch of code. If the endianess reversing was triggered, it would've output "»fname« seems to have different endianess!" message. So I don't think this is the cause of problems. But... what else could be? :/ As Ivan said, please check if r2734 is working for you, and then if r2735. It would prove that indeed endianess "fixing" causes problems, though ATM I can't see how's that possible. I might've done some very stupid yet trivial mistake, that's hard to notice. >>> Is this version number correct? It is surprising. It would be correct if bytes were reversed, so it's clearly an endianess mismatch. Since it's before reversing, it looks that you have big-endian savegame and little-endian build or vice-versa. Any chance of that? Even more surprising is the crash backtrace. It fails on loading magic 8 bytes from the file which should not depend on endianess at all. Can you check what is value of "this" in the top stack frame (that std::istream), since both data address and size (1) look reasonable. As for the new game issue: 1. Could you capture stacktrace of client when it's hanged up? 2. What's the state of server process? If it's also frozen, please try to obtain its stacktrace too. Many thanks for your feedback! |
(0002610) douggie_m (reporter) 2012-06-05 15:04 edited on: 2012-06-05 15:36 |
> It would be correct if bytes were reversed, so it's clearly an endianess mismatch. Since it's before reversing, it looks that you have big-endian savegame and little-endian build or vice-versa. Any chance of that? I do have savegames (incl. autosaves) produced by earlier revision of VCMI, I did not swap architectures / operating systems / endian modes in-between :) $ ls -l ~/.vcmi/Games/ total 11956 -rw-r--r-- 1 username username 63 May 22 14:41 Autosave_1.vcgm1 -rw-r--r-- 1 username username 937902 May 22 14:41 Autosave_1.vlgm1 -rw-r--r-- 1 username username 37 May 22 14:41 Autosave_1.vsgm1 -rw-r--r-- 1 username username 63 May 25 15:15 Autosave_2.vcgm1 -rw-r--r-- 1 username username 941156 May 25 15:15 Autosave_2.vlgm1 -rw-r--r-- 1 username username 37 May 25 15:15 Autosave_2.vsgm1 -rw-r--r-- 1 username username 63 May 25 15:17 Autosave_3.vcgm1 -rw-r--r-- 1 username username 941033 May 25 15:17 Autosave_3.vlgm1 -rw-r--r-- 1 username username 37 May 25 15:17 Autosave_3.vsgm1 -rw-r--r-- 1 username username 63 May 22 14:45 Autosave_4.vcgm1 -rw-r--r-- 1 username username 937162 May 22 14:45 Autosave_4.vlgm1 -rw-r--r-- 1 username username 37 May 22 14:45 Autosave_4.vsgm1 -rw-r--r-- 1 username username 63 May 22 14:46 Autosave_5.vcgm1 -rw-r--r-- 1 username username 936777 May 22 14:46 Autosave_5.vlgm1 -rw-r--r-- 1 username username 37 May 22 14:46 Autosave_5.vsgm1 -rw-r--r-- 1 username username 63 May 25 15:13 Autosave_6.vcgm1 -rw-r--r-- 1 username username 941382 May 25 15:13 Autosave_6.vlgm1 -rw-r--r-- 1 username username 37 May 25 15:13 Autosave_6.vsgm1 -rw-r--r-- 1 username username 63 May 22 14:51 game1.vcgm1 -rw-r--r-- 1 username username 939428 May 22 14:51 game1.vlgm1 -rw-r--r-- 1 username username 37 May 22 14:51 game1.vsgm1 -rw-r--r-- 1 username username 63 May 16 07:40 mygame1.vcgm1 -rw-r--r-- 1 username username 906679 May 16 07:40 mygame1.vlgm1 -rw-r--r-- 1 username username 37 May 16 07:40 mygame1.vsgm1 -rw-r--r-- 1 username username 59 May 21 12:34 Newgame_Autosave_1.vcgm1 -rw-r--r-- 1 username username 928935 May 21 12:34 Newgame_Autosave_1.vlgm1 -rw-r--r-- 1 username username 37 May 21 12:34 Newgame_Autosave_1.vsgm1 -rw-r--r-- 1 username username 59 May 22 12:54 Newgame_Autosave_2.vcgm1 -rw-r--r-- 1 username username 934596 May 22 12:54 Newgame_Autosave_2.vlgm1 -rw-r--r-- 1 username username 37 May 22 12:54 Newgame_Autosave_2.vsgm1 -rw-r--r-- 1 username username 59 May 18 04:56 Newgame_Autosave_3.vcgm1 -rw-r--r-- 1 username username 924672 May 18 04:56 Newgame_Autosave_3.vlgm1 -rw-r--r-- 1 username username 37 May 18 04:56 Newgame_Autosave_3.vsgm1 -rw-r--r-- 1 username username 59 May 18 05:00 Newgame_Autosave_4.vcgm1 -rw-r--r-- 1 username username 924279 May 18 05:00 Newgame_Autosave_4.vlgm1 -rw-r--r-- 1 username username 37 May 18 05:00 Newgame_Autosave_4.vsgm1 -rw-r--r-- 1 username username 59 May 21 12:28 Newgame_Autosave_5.vcgm1 -rw-r--r-- 1 username username 924109 May 21 12:28 Newgame_Autosave_5.vlgm1 -rw-r--r-- 1 username username 37 May 21 12:28 Newgame_Autosave_5.vsgm1 > please check if r2734 is working for you, and then if r2735 Okay, time for svn co https://vcmi.svn.sourceforge.net/svnroot/vcmi/trunk@2734 [^] vcmi-svn-2734 UPD: r2734 shows samegame list and doesn't crash (see screenshot); now I'm trying r2735. UPD2: Ivan was right. r2735 crashes with Initialization of VCMI (together): 2120 Error: Too new file format! (file /home/username/.vcmi/Games/Autosave_4.vlgm1 ) Segmentation fault I'll dig with gdb now in a separate comment. |
(0002611) douggie_m (reporter) 2012-06-05 15:43 edited on: 2012-06-05 15:54 |
(r2735) ------------------------------- Breakpoint 1, CLoadFile::openNextFile (this=0xf2d0b2e4, fname=..., minimalVersion=732) at Connection.cpp:311 311 Connection.cpp: No such file or directory. (gdb) s 312 in Connection.cpp (gdb) s 313 in Connection.cpp (gdb) s 321 in Connection.cpp (gdb) s 323 in Connection.cpp (gdb) s 330 in Connection.cpp (gdb) p /fx myVersion $1 = 0x2dc (gdb) p /fx version $2 = 0x2dc (gdb) p /fx minimalVersion $3 = 0x2dc (gdb) p this $4 = (CLoadFile * const) 0xf2d0b2e4 (gdb) ptype this type = class CLoadFile : public CISer<CLoadFile> { public: std::string fName; std::unique_ptr<std::basic_ifstream<char, std::char_traits<char> >, std::default_delete<std::basic_ifstream<char, std::char_traits<char> > > > sfile; CLoadFile(int, const void **, const std::string &, int); private: void dummyMagicFunction(void); public: ~CLoadFile(int, const void **); int read(const void *, unsigned int); void openNextFile(const std::string &, int); virtual void reportState(CLogger &); } * const (gdb) s 331 in Connection.cpp (gdb) p /fx myVersion $5 = 0xdc020000 (gdb) p /fx minimalVersion $6 = 0x2dc (gdb) p /fx version $7 = 0x2dc ------------------------------- So it is swapped on line 331, it looks like you have re-defined "operator>>" or so... UPD: First bytes from Autosave_4.vlgm1: $ xxd Autosave_4.vlgm1 | head 0000000: 5643 4d49 0000 02dc 5643 4d49 5356 4700 VCMI....VCMISVG. 0000010: 0000 000e 0000 000b 416c 6c20 666f 7220 ........All for 0000020: 4f6e 6500 0000 b254 6872 6565 206c 6966 One....Three lif 0000030: 652d 6c6f 6e67 2066 7269 656e 6473 2062 e-long friends b 0000040: 6563 6f6d 6520 656e 656d 6965 7320 7768 ecome enemies wh 0000050: 656e 2065 6163 6820 696e 6865 7269 7473 en each inherits 0000060: 2061 2070 6f72 7469 6f6e 206f 6620 7468 a portion of th 0000070: 6520 6b69 6e67 646f 6d20 666f 6c6c 6f77 e kingdom follow 0000080: 696e 6720 7468 6520 4b69 6e67 2773 2064 ing the King's d 0000090: 6561 7468 2e20 2059 6f75 206d 7573 7420 eath. You must UPD2: I suppose it is because you added byte-swapping in lib/Connection.h. |
(0002612) Tow (developer) 2012-06-05 22:07 edited on: 2012-06-05 22:36 |
Thank you for your feedback. > UPD2: I suppose it is because you added byte-swapping in lib/Connection.h. It shouldn't be so. It does reversing only if reverseEndianess flag is set. It's disabled by default (set to false in CIser<> constructor) and gets enabled only if version number stored in the file is wrong but would be right if it's bytes were reversed. Then bytes will get reversed for all primitve types. However triggering on reverseEndianess does leave a trace in log (the "different endianess!" warning). In the logs you pasted I see no sign of such entry. So it's not a reversing part. If you want to be sure, you can try setting breakpoint on line 768 in lib/CConnection.h. Since it does also fail for starting a new game, the problem must lie in changes I've done in CISer::loadPrimitive. It should behave the same as it did in r2734 when reverseEndianess is false, but they apparently do not. And I can't see what I've done wrong, especially since it's working so fine for me. :/ Maybe I'm too tired or it's some casting/pointers/alignment subtlety/madness. Is that possible that casting T* -> char* -> void* -> char* can yield different result than T* -> void* -> char*? Try changing lin e766 in CConnection.h to: this->This()->read(&data,sizeof(data)); (as it was) Does it help? |
(0002613) douggie_m (reporter) 2012-06-06 06:17 |
> Try changing lin e766 in CConnection.h to ---------------------------------------- --- lib/Connection.h (revision 2735) +++ lib/Connection.h (working copy) @@ -763,7 +763,8 @@ char * dataPtr = (char*)&data; unsigned length = sizeof(data); - this->This()->read(dataPtr,length); + //this->This()->read(dataPtr,length); + this->This()->read(&data,sizeof(data)); if(reverseEndianess) std::reverse(dataPtr, dataPtr + length); } ---------------------------------------- No difference. Still crashes on the same spot while trying to get list of saved games. As for starting a new game: ---------------------------------------- Establishing connection... Found endpoints: 0: 127.0.0.1:3030 Trying connection to 127.0.0.1:3030 (0) Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xf2d0c450 (LWP 28970)] 0x0fc5be30 in boost::asio::basic_io_object<boost::asio::stream_socket_service<boost::asio::ip::tcp>, true>::get_service (this=0x0) at /usr/include/boost/asio/basic_io_object.hpp:209 209 return *service_; (gdb) bt #0 0x0fc5be30 in boost::asio::basic_io_object<boost::asio::stream_socket_service<boost::asio::ip::tcp>, true>::get_service (this=0x0) at /usr/include/boost/asio/basic_io_object.hpp:209 #1 0x0fc5f7b4 in boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::write_some<boost::asio::detail::consuming_buffers<boost::asio::const_buffer, boost::asio::const_buffers_1> > (this=0x0, buffers=..., ec=...) at /usr/include/boost/asio/basic_stream_socket.hpp:630 0000002 0x0fc5c1c4 in boost::asio::write<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >, boost::asio::const_buffers_1, boost::asio::detail::transfer_all_t> (s=..., buffers=..., completion_condition=..., ec=...) at /usr/include/boost/asio/impl/write.hpp:48 0000003 0x0fc57d08 in boost::asio::write<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >, boost::asio::const_buffers_1> (s=..., buffers=...) at /usr/include/boost/asio/impl/write.hpp:61 0000004 0x0fc45900 in CConnection::write (this=0x113cf9d4, data=0xf2d0b468, size=4) at Connection.cpp:163 0000005 0x103808f8 in COSer<CConnection>::savePrimitive<unsigned int> (this=0x113cfa18, data=@0xf2d0b468: 6) at ../lib/Connection.h:482 0000006 0x103780a8 in SavePrimitive<CConnection, unsigned int>::invoke (s=..., data=@0xf2d0b468: 6) at ../lib/Connection.h:124 0000007 0x1036e600 in COSer<CConnection>::save<unsigned int> (this=0x113cfa18, data=@0xf2d0b468: 6) at ../lib/Connection.h:578 0000008 0x10366d0c in COSer<CConnection>::operator<< <unsigned int> (this=0x113cfa18, t=@0xf2d0b468: 6) at ../lib/Connection.h:466 0000009 0x103807d8 in COSer<CConnection>::saveSerializable (this=0x113cfa18, data=...) at ../lib/Connection.h:628 0000010 0x1037801c in SaveSerializable<CConnection, std::string>::invoke (s=..., data=...) at ../lib/Connection.h:132 0000011 0x1036e510 in COSer<CConnection>::save<std::string> (this=0x113cfa18, data=...) at ../lib/Connection.h:578 0000012 0x10366bdc in COSer<CConnection>::operator<< <std::string> (this=0x113cfa18, t=...) at ../lib/Connection.h:466 0000013 0x0fc43d78 in CConnection::init (this=0x113cf9d8) at Connection.cpp:71 0000014 0x0fc44b84 in CConnection::CConnection (this=0x113cf9d8, host=..., port=..., Name=..., __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at Connection.cpp:117 0000015 0x1035efa0 in CServerHandler::justConnectToServer (host=..., port=...) at Client.cpp:729 0000016 0x1035e51c in CServerHandler::connectToServer (this=0xf2d0b7d0) at Client.cpp:682 0000017 0x1035b570 in CClient::newGame (this=0x113d1f68, con=0x0, si=0x1132c110) at Client.cpp:292 0000018 0x10437320 in startGame (options=0x1132c110, serv=0x0) at CMT.cpp:798 0000019 0x104c7a18 in CSelectionScreen::startGame (this=0x11291940) at CPreGame.cpp:844 0000020 0x1052d6d4 in boost::_mfi::mf0<void, CSelectionScreen>::operator() (this=0x11010f94, p=0x11291940) at /usr/include/boost/bind/mem_fn_template.hpp:49 0000021 0x10526094 in boost::_bi::list1<boost::_bi::value<CSelectionScreen*> >::operator()<boost::_mfi::mf0<void, CSelectionScreen>, boost::_bi::list0> (this=0x11010f9c, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 0000022 0x1051ddac in boost::_bi::bind_t<void, boost::_mfi::mf0<void, CSelectionScreen>, boost::_bi::list1<boost::_bi::value<CSelectionScreen*> > >::operator() (this=0x11010f94) at /usr/include/boost/bind/bind_template.hpp:20 0000023 0x105133a8 in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, CSelectionScreen>, boost::_bi::list1<boost::_bi::value<CSelectionScreen*> > >, void>::invoke (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153 0000024 0x10230ae0 in boost::function0<void>::operator() (this=0x11010f90) at /usr/include/boost/function/function_template.hpp:760 0000025 0x10230f34 in CFunctionList<void ()>::operator()() const (this=0x113edd54) at ./UIFramework/../FunctionList.h:62 0000026 0x104cc788 in SelectionTab::onDoubleClick (this=0x11378cc0) at CPreGame.cpp:1510 0000027 0x10210c1c in CGuiHandler::handleEvent (this=0x10827120, sEvent=0xe9f3cb68) at ./UIFramework/CGuiHandler.cpp:203 0000028 0x10210684 in CGuiHandler::handleEvents (this=0x10827120) at ./UIFramework/CGuiHandler.cpp:150 0000029 0x104c4964 in CGPreGame::update (this=0xe9f3b258) at CPreGame.cpp:491 0000030 0x102120d0 in CGuiHandler::run (this=0x10827120) at ./UIFramework/CGuiHandler.cpp:359 0000031 0x104496e8 in boost::_mfi::mf0<void, CGuiHandler>::operator() (this=0xe9f93904, t=...) at /usr/include/boost/bind/mem_fn_template.hpp:70 0000032 0x10449440 in boost::_bi::list1<boost::reference_wrapper<CGuiHandler> >::operator()<boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list0> (this=0xe9f9390c, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 0000033 0x104492e0 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list1<boost::reference_wrapper<CGuiHandler> > >::operator() (this=0xe9f93904) at /usr/include/boost/bind/bind_template.hpp:20 0000034 0x104488e8 in boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list1<boost::reference_wrapper<CGuiHandler> > > >::run (this=0xe9f93800) at /usr/include/boost/thread/detail/thread.hpp:62 0000035 0x0e46c40c in ?? () from /usr/lib/libboost_thread.so.1.49.0 0000036 0x0ddf37b0 in start_thread (arg=<optimized out>) at pthread_create.c:306 0000037 0x0df19930 in clone () at ../sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S:123 ---------------------------------------- |
(0002632) Tow (developer) 2012-06-08 00:16 |
Thanks for information and your time. The issue is still puzzling me however. Please try r2746. It should give more output and possibly be a little more robust when parsing games goes wrong. Please tell: a) if displaying saved games works b) if starting a new game works If the problem still persists (what is likely), please go to CConnection.h line 773 and change the line to: if(1) That should revert this function behaviour to pre-r2735 version. Please check if this helps. Thanks again for your patience! :) |
(0002657) douggie_m (reporter) 2012-06-13 07:02 edited on: 2012-06-13 07:09 |
Guys... I tried absolutely fresh SVN (r2753) and got this. <see attached screenshot> So currently, I cannot even navigate in menus. UPD: Oh, as I see, somebody discovered this too -- http://bugs.vcmi.eu/view.php?id=1000 [^] |
(0002661) douggie_m (reporter) 2012-06-13 08:35 edited on: 2012-06-13 10:49 |
As of r2753, the initially reported issue is **resolved fixed**. Both loading saved game and starting a new one do work perfectly. This bug can be closed. UPD: By the way, if you do have any little-endian machine, can you upload some EL-ordered savegame to test? |
(0002697) douggie_m (reporter) 2012-06-15 21:56 |
This bug can be closed. Everything reported in it is okay now. Also, I can successfully load and play endian-little ordered savegames on my big-endian machines (I tried the one from http://bugs.vcmi.eu/view.php?id=1008 [^]). |
(0002800) douggie_m (reporter) 2012-07-18 17:53 |
This issue is resolved. |
Issue History | |||
Date Modified | Username | Field | Change |
2012-06-04 18:09 | douggie_m | New Issue | |
2012-06-04 18:46 | douggie_m | Note Added: 0002606 | |
2012-06-04 21:17 | Ivan | Note Added: 0002607 | |
2012-06-05 07:42 | douggie_m | Note Added: 0002608 | |
2012-06-05 12:35 | Tow | Note Added: 0002609 | |
2012-06-05 15:04 | douggie_m | Note Added: 0002610 | |
2012-06-05 15:28 | douggie_m | File Added: vcmi-client-shot-r2734-load_game.png | |
2012-06-05 15:29 | douggie_m | Note Edited: 0002610 | View Revisions |
2012-06-05 15:36 | douggie_m | Note Edited: 0002610 | View Revisions |
2012-06-05 15:43 | douggie_m | Note Added: 0002611 | |
2012-06-05 15:51 | douggie_m | Note Edited: 0002611 | View Revisions |
2012-06-05 15:54 | douggie_m | Note Edited: 0002611 | View Revisions |
2012-06-05 22:07 | Tow | Note Added: 0002612 | |
2012-06-05 22:36 | Tow | Note Edited: 0002612 | View Revisions |
2012-06-06 06:17 | douggie_m | Note Added: 0002613 | |
2012-06-08 00:16 | Tow | Note Added: 0002632 | |
2012-06-13 07:02 | douggie_m | Note Added: 0002657 | |
2012-06-13 07:03 | douggie_m | File Added: Screenshot - 06132012 - 03:00:20 AM.png | |
2012-06-13 07:04 | douggie_m | Note Edited: 0002657 | View Revisions |
2012-06-13 07:09 | douggie_m | Note Edited: 0002657 | View Revisions |
2012-06-13 08:35 | douggie_m | Note Added: 0002661 | |
2012-06-13 08:36 | douggie_m | Note Edited: 0002661 | View Revisions |
2012-06-13 08:41 | douggie_m | Note Edited: 0002661 | View Revisions |
2012-06-13 08:49 | douggie_m | Note Edited: 0002661 | View Revisions |
2012-06-13 10:49 | douggie_m | Note Edited: 0002661 | View Revisions |
2012-06-15 21:56 | douggie_m | Note Added: 0002697 | |
2012-07-18 17:53 | douggie_m | Note Added: 0002800 | |
2012-07-19 05:40 | Warmonger | Status | new => resolved |
2012-07-19 05:40 | Warmonger | Fixed in Version | => 0.9 |
2012-07-19 05:40 | Warmonger | Resolution | open => fixed |
2012-07-19 05:40 | Warmonger | Assigned To | => Warmonger |
2014-05-30 17:41 | beegee | Status | resolved => closed |
Copyright © 2000 - 2024 MantisBT Team |