MantisBT - VCMI
View Issue Details
0001208VCMIGUI - PreGamepublic2013-02-12 20:582014-05-30 17:41
o01eg 
Tow 
highcrashalways
closedfixed 
amd64Gentoo Linux
 
0.92 
0001208: Crash at pregame in starting as host [r3193].
When I open left window at pregame in multiplayer host mode I get crash:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffde5e9700 (LWP 2375)]
0x00007ffff3bf835f in __dynamic_cast () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6
(gdb) bt full
#0 0x00007ffff3bf835f in __dynamic_cast () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6
No symbol table info available.
#1 0x0000000000c5b039 in CSelectionScreen::handleConnection (this=0x7fffd8ff5000) at /mnt/another/tmp/vcmi/client/CPreGame.cpp:937
        endingPack = 0x0
        pack = 0x7fffb8766730
        __PRETTY_FUNCTION__ = "void CSelectionScreen::handleConnection()"
0000002 0x0000000000cb182c in boost::_mfi::mf0<void, CSelectionScreen>::operator() (this=0x7fffd9019118, p=0x7fffd8ff5000)
    at /usr/include/boost-1_49/boost/bind/mem_fn_template.hpp:49
No locals.
0000003 0x0000000000caceaa in boost::_bi::list1<boost::_bi::value<CSelectionScreen*> >::operator()<boost::_mfi::mf0<void, CSelectionScreen>, boost::_bi::list0>
    (this=0x7fffd9019128, f=..., a=...) at /usr/include/boost-1_49/boost/bind/bind.hpp:253
No locals.
0000004 0x0000000000ca7407 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, CSelectionScreen>, boost::_bi::list1<boost::_bi::value<CSelectionScreen*> > >::operator() (this=0x7fffd9019118) at /usr/include/boost-1_49/boost/bind/bind_template.hpp:20
        a = {<No data fields>}
0000005 0x0000000000cbc614 in boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, CSelectionScreen>, boost::_bi::list1<boost::_bi::value<CSelectionScreen*> > > >::run (this=0x7fffd9018f90) at /usr/include/boost-1_49/boost/thread/detail/thread.hpp:62
No locals.
0000006 0x00007ffff6427687 in ?? () from /usr/lib64/libboost_thread-mt-1_49.so.1.49.0
No symbol table info available.
0000007 0x00007ffff5f6cd96 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
0000008 0x00007ffff337646d in clone () from /lib64/libc.so.6
No symbol table info available.
(gdb) f 1
#1 0x0000000000c5b039 in CSelectionScreen::handleConnection (this=0x7fffd8ff5000) at /mnt/another/tmp/vcmi/client/CPreGame.cpp:937
937 if(QuitMenuWithoutStarting *endingPack = dynamic_cast<QuitMenuWithoutStarting *>(pack))
(gdb) p *pack
$2 = {<CPack> = {_vptr.CPack = 0x7fffb8766750, type = 200}, <No data fields>}
(gdb) p *serv
$5 = {<CISer<CConnection>> = {<CLoaderBase> = {<CSerializer> = {_vptr.CSerializer = 0x7ffff7d80900 <vtable for CConnection+96>,
        vectors = std::map with 0 elements, smartVectorMembersSerialization = false, sendStackInstanceByIds = false},
      _vptr.CLoaderBase = 0x7ffff7d808b8 <vtable for CConnection+24>}, saving =
findvar.c:176: internal-error: extract_typed_address: type is not a pointer or reference
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) n
findvar.c:176: internal-error: extract_typed_address: type is not a pointer or reference
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Create a core file of GDB? (y or n) n
<error reading variable>
(gdb) f 2
0000002 0x0000000000cb182c in boost::_mfi::mf0<void, CSelectionScreen>::operator() (this=0x7fffd9019118, p=0x7fffd8ff5000)
    at /usr/include/boost-1_49/boost/bind/mem_fn_template.hpp:49
49 BOOST_MEM_FN_RETURN (p->*f_)();
(gdb) p *p
$8 = {<CIntObject> = {<IShowActivatable> = {<IShowable> = {_vptr.IShowable = 0xdb1710 <vtable for CSelectionScreen+16>}, <IActivatable> = {
        _vptr.IActivatable = 0xdb17c0 <vtable for CSelectionScreen+192>}, type = 2}, used = 0, toNextTick = 0, timerDelay = 0, parent_m = 0x0,
    active_m = 64, children = std::vector of length 12, capacity 16 = {0x7fffd9016410, 0x7fffd8ff53a0, 0x7fffd907f980, 0x7fffd902f3b0, 0x7fffd901ea50,
      0x7fffd933af20, 0x7fffd9512170, 0x7fffd9516390, 0x7fffd9515000, 0x7fffd950c6b0, 0x7fffd9092460, 0x7fffd907c020}, parent = @0x7fffd8ff5020,
    pos = {<SDL_Rect> = {x = 112, y = 84, w = 800, h = 600}, <No data fields>}, pressedL = false, pressedR = false, hovered = false,
    captureAllKeys = false, strongInterest = false, active = @0x7fffd8ff5028, defActions = 255 '\377', recActions = 63 '?'}, <ISelectionScreenInfo> = {
    _vptr.ISelectionScreenInfo = 0xdb17f0 <vtable for CSelectionScreen+240>, multiPlayer = CMenuScreen::MULTI_NETWORK_HOST,
    screenType = CMenuScreen::newGame, current = 0x7fffd944e138, sInfo = {mode = StartInfo::NEW_GAME, difficulty = 1 '\001',
      playerInfos = {<std::map<unsigned char, PlayerSettings, std::less<unsigned char>, std::allocator<std::pair<unsigned char const, PlayerSettings> > >> = std::map with 4 elements = {[0 '\000'] = {bonus = PlayerSettings::RANDOM, castle = -1, hero = -1, heroPortrait = -1, heroName = "", color = 0 '\000',
            handicap = PlayerSettings::NO_HANDICAP, team = 0 '\000', name = "O01eg", playerID = 1 '\001', compOnly = false}, [1 '\001'] = {
            bonus = PlayerSettings::RANDOM, castle = -1, hero = -1, heroPortrait = -1, heroName = "", color = 1 '\001',
            handicap = PlayerSettings::NO_HANDICAP, team = 0 '\000', name = "Computer", playerID = 0 '\000', compOnly = false}, [5 '\005'] = {
            bonus = PlayerSettings::RANDOM, castle = -1, hero = -1, heroPortrait = -1, heroName = "", color = 5 '\005',
            handicap = PlayerSettings::NO_HANDICAP, team = 0 '\000', name = "Computer", playerID = 0 '\000', compOnly = false}, [6 '\006'] = {
            bonus = PlayerSettings::RANDOM, castle = -1, hero = -1, heroPortrait = -1, heroName = "", color = 6 '\006',
            handicap = PlayerSettings::NO_HANDICAP, team = 0 '\000', name = "Computer", playerID = 0 '\000', compOnly = false}}, <No data fields>},
      seedToBeUsed = 0, seedPostInit = 0, mapfileChecksum = 0, turnTime = 0 '\000', mapname = "MAPS/ARROGANCE", createRandomMap = false,
      mapGenOptions = std::shared_ptr (empty) 0x0, campState = std::shared_ptr (empty) 0x0}, playerNames = std::map with 1 elements = {[1 '\001'] =
    "O01eg"}}, bordered = true, bg = 0x7fffd9016410, card = 0x7fffd907f980, opt = 0x7fffd902f3b0, randMapTab = 0x7fffd901ea50, start = 0x7fffd950c5e0,
  back = 0x7fffd907bf50, sel = 0x7fffd933af20, curTab = 0x7fffd933af20, serverHandlingThread = 0x7fffd9018f70, mx = 0x7fffd8fd1a20,
  upcomingPacks = empty std::list, serv = 0x7fffd950ce00, ongoingClosing = false, myNameID = 1 '\001'}
(gdb) p f_
$9 = (void (CSelectionScreen::*)(CSelectionScreen * const)) 0xc5af44 <CSelectionScreen::handleConnection()>
Move to New game -> Multiplayer -> Host
Click on "Random Map" or "Show Available scenarios"
No tags attached.
zip vcmi.zip (8,023) 2013-02-12 20:58
https://bugs.vcmi.eu/file_download.php?file_id=1187&type=bug
Issue History
2013-02-12 20:58o01egNew Issue
2013-02-12 20:58o01egStatusnew => assigned
2013-02-12 20:58o01egAssigned To => Tow
2013-02-12 20:58o01egFile Added: vcmi.zip
2013-02-12 22:56TowNote Added: 0003375
2013-02-12 22:56TowStatusassigned => confirmed
2013-02-14 15:21TowNote Added: 0003381
2013-02-14 15:21TowStatusconfirmed => resolved
2013-02-14 15:21TowFixed in Version => 0.92
2013-02-14 15:21TowResolutionopen => fixed
2014-05-30 17:41beegeeStatusresolved => closed

Notes
(0003375)
Tow   
2013-02-12 22:56   
MP mode is not supported.
Still, it should be fixed. The MP was working pretty much (aside from numerous GUI glitches), however unused code in some magic way degrades over time.
(0003381)
Tow   
2013-02-14 15:21   
Fixed in r3203.