MantisBT - VCMI |
View Issue Details |
|
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. |
Relationships | |
Attached Files | vcmi-client-shot-r2734-load_game.png (989,387) 2012-06-05 15:28 https://bugs.vcmi.eu/file_download.php?file_id=955&type=bug
Screenshot - 06132012 - 03:00:20 AM.png (835,460) 2012-06-13 07:03 https://bugs.vcmi.eu/file_download.php?file_id=960&type=bug
|
|
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 | bug_revision_view_page.php?bugnote_id=2610#r1679 |
2012-06-05 15:36 | douggie_m | Note Edited: 0002610 | bug_revision_view_page.php?bugnote_id=2610#r1680 |
2012-06-05 15:43 | douggie_m | Note Added: 0002611 | |
2012-06-05 15:51 | douggie_m | Note Edited: 0002611 | bug_revision_view_page.php?bugnote_id=2611#r1682 |
2012-06-05 15:54 | douggie_m | Note Edited: 0002611 | bug_revision_view_page.php?bugnote_id=2611#r1683 |
2012-06-05 22:07 | Tow | Note Added: 0002612 | |
2012-06-05 22:36 | Tow | Note Edited: 0002612 | bug_revision_view_page.php?bugnote_id=2612#r1685 |
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 | bug_revision_view_page.php?bugnote_id=2657#r1709 |
2012-06-13 07:09 | douggie_m | Note Edited: 0002657 | bug_revision_view_page.php?bugnote_id=2657#r1710 |
2012-06-13 08:35 | douggie_m | Note Added: 0002661 | |
2012-06-13 08:36 | douggie_m | Note Edited: 0002661 | bug_revision_view_page.php?bugnote_id=2661#r1714 |
2012-06-13 08:41 | douggie_m | Note Edited: 0002661 | bug_revision_view_page.php?bugnote_id=2661#r1715 |
2012-06-13 08:49 | douggie_m | Note Edited: 0002661 | bug_revision_view_page.php?bugnote_id=2661#r1716 |
2012-06-13 10:49 | douggie_m | Note Edited: 0002661 | bug_revision_view_page.php?bugnote_id=2661#r1719 |
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 |
Notes |
|
|
I forgot to say that "current SVN" was rev 2743. |
|
|
(0002607)
|
Ivan
|
2012-06-04 21:17
|
|
|
|
|
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
|
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
|
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
|
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
|
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?
|
|
|
|
> 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
|
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
|
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
|
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?
|
|
|
|
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 [^]). |
|
|
|
|