Follow-up Comment #11, bug #6589 (project wormux):
Greyfox came on irc 2-3 days ago.
He have reproduced the bug under gdb (on wormux-0.7.3), and get this
backtrace:
#0 0x00002b03bb110b59 in kill () from /lib/tls/libc.so.6
#1 0x00000000004358c9 in WakeUpDebugger () at error.cpp:41
#2 0x000000000043594e in MissedAssertion (filename=0x4b363d
"object/object_cfg.cpp", line=55,
message=0x4b362b "doc.Charge (file)") at error.cpp:53
#3 0x0000000000465e38 in ObjectConfig::LoadXml (this=0x2086518,
[EMAIL PROTECTED], [EMAIL PROTECTED])
at object_cfg.cpp:55
#4 0x000000000045def7 in PhysicalObj (this=0x2086410,
[EMAIL PROTECTED], [EMAIL PROTECTED])
at physical_obj.cpp:73
#5 0x00000000004673fd in Particle (this=0x2086410,
[EMAIL PROTECTED]) at particle.cpp:38
#6 0x0000000000467efc in ExplosionSmoke (this=0x2086410,
size_init=50) at particle.cpp:116
#7 0x0000000000469a8c in ParticleEngine::AddLittleESmoke
([EMAIL PROTECTED], [EMAIL PROTECTED])
at particle.cpp:394
#8 0x0000000000469bde in ParticleEngine::AddExplosionSmoke
([EMAIL PROTECTED], [EMAIL PROTECTED],
[EMAIL PROTECTED]) at particle.cpp:410
#9 0x0000000000495021 in ApplyExplosion ([EMAIL PROTECTED],
[EMAIL PROTECTED], obj_exclu=0x0,
[EMAIL PROTECTED], fire_particle=true,
smoke=ParticleEngine::BigESmoke) at weapon_tools.cpp:138
#10 0x000000000049685a in WeaponProjectile::Explosion (this=0x9cd650)
at launcher.cpp:256
#11 0x0000000000496c87 in WeaponLauncher::Explosion (this=0x9cc850) at
launcher.cpp:299
#12 0x0000000000496cbf in WeaponLauncher::Refresh (this=0x9cc850) at
launcher.cpp:305
#13 0x000000000048ff2c in Weapon::Manage (this=0x9cc850) at weapon.cpp:165
#14 0x0000000000418736 in GameLoop::Refresh (this=0x110c2d0) at
game_loop.cpp:376
#15 0x0000000000419175 in GameLoop::Run (this=0x110c2d0) at
game_loop.cpp:478
#16 0x0000000000415eb3 in Game::Start (this=0x63f440) at game.cpp:233
#17 0x0000000000450ada in GameMenu::__sig_ok (this=0x7ffff10ca400) at
game_menu.cpp:193
#18 0x0000000000448e4d in Menu::sig_ok (this=0x7ffff10ca400) at menu.cpp:55
#19 0x0000000000448fa1 in Menu::BasicOnClic (this=0x7ffff10ca400,
[EMAIL PROTECTED]) at menu.cpp:69
#20 0x0000000000449104 in Menu::Run (this=0x7ffff10ca400) at menu.cpp:124
#21 0x000000000040d7db in AppWormux::main (this=0x607da0, argc=1,
argv=0x7ffff10ca6c8) at main.cpp:78
#22 0x000000000040e87b in main (argc=1, argv=0x7ffff10ca6c8) at main.cpp:236
***************************************************************
***************************************************************
Here are the variable we have verified during this crash:
(copy/paste from irc)
18:03 <@lodesi> print file
18:03 < Gr3yFox> #3 0x0000000000465e38 in ObjectConfig::LoadXml
(this=0x2086518, [EMAIL PROTECTED], [EMAIL PROTECTED])
18:03 < Gr3yFox> at object_cfg.cpp:55
18:03 < Gr3yFox> 55 assert(doc.Charge (file));
18:03 < Gr3yFox> this is frame 3
18:04 < Gr3yFox> $1 = {static npos = 18446744073709551615,
18:04 < Gr3yFox> _M_dataplus = {<std::allocator<char>> =
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x20865d8 "/usr/local/share/wormux/game_mode/objects.xml"}}
18:06 <@lodesi> Gr3yFox: try print doc
18:06 < Gr3yFox> $2 = {parser = <incomplete type>}
18:13 <@lodesi> Gr3yFox: try frame 4
18:13 <@lodesi> print xml_config
18:14 < Gr3yFox> frame 4:
18:14 < Gr3yFox> #4 0x000000000045def7 in PhysicalObj (this=0x2086410,
[EMAIL PROTECTED], [EMAIL PROTECTED])
18:14 < Gr3yFox> at physical_obj.cpp:73
18:14 < Gr3yFox> 73 m_cfg.LoadXml(m_name,xml_config); // Load physics
constants from the xml file
18:14 < Gr3yFox> $3 = (const string &) @0x7ffff10c9d40: {static npos =
18446744073709551615,
18:14 < Gr3yFox> _M_dataplus = {<std::allocator<char>> =
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x2b03bae6d718 ""}}
*************************************************************
*************************************************************
*************************************************************
Valgrind backtrace:
==17628== Memcheck, a memory error detector.
==17628== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==17628== Using LibVEX rev 1606, a library for dynamic binary translation.
==17628== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==17628== Using valgrind-3.2.0, a dynamic binary instrumentation framework.
==17628== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==17628== For more details, rerun with: -v
==17628==
=== Wormux Versione0.7.3
=== Autori: Anthony CARRE, Jean-Christophe DUBERGA, Laurent DEFERT
SIMONNEAU, Lawrenc AZZOUG, Matthieu FERTRE, Olivier Boyer, Renaud
LOTTIAUX, Victor STINNER
=== Sito web: http://www.wormux.org
Wormux version 0.7.3, Copyright (C) 2001-2006 Wormux team
Wormux comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions.
Read COPYING file for details.
!!! This program was compiled in DEBUG mode (development version) !!!
[ Avvia il gioco ]
o Load skins: thunderbirdteam, tuxteam, konqiteam, alien, wilberteam,
ver, nupikteam, hpteam, gnuteam, poulpe, workraveteam, escargot,
firefoxteam, snortteam, ecureuil, fl ent_rose
o Load teams: thunderbirdteam, tuxteam, alien, nuts, wilberteam, ver,
nupikteam, pink loyd, phpteam, gnuteam, poulpe, workraveteam,
escargot, firefoxteam, snortteam, konqu eam
o Load maps: mer, qingqong, hell, monkeybubbleworld, desert, cowland,
grenouilles, go andevil, arbre, space, wildwestdv, noel, prehistorik,
battlenight, banquise, pirates, ibellule, island, araignee,
halloween, aquarium, catacombes, cheese, champignon, elec onik,
leafs, paradis, vulcano
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x9BCABBB: snd_pcm_direct_shm_create_or_connect (in
/usr/lib64/libaso d.so.2.0.0)
==17628== by 0x9BC7649: snd_pcm_dmix_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BC7D5D: _snd_pcm_dmix_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97C47: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97EF6: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BD0950: _snd_pcm_softvol_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97F35: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BB608B: _snd_pcm_plug_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97F35: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628==
==17628== Syscall param socketcall.connect(serv_addr..sun_path) points
to uninitialis byte(s)
==17628== at 0x521836F: (within /lib64/tls/libpthread.so)
==17628== by 0x9BCAD0D: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BCB46A: snd_pcm_direct_client_connect (in
/usr/lib64/libasound.so. 0.0)
==17628== by 0x9BC76E4: snd_pcm_dmix_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BC7D5D: _snd_pcm_dmix_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97C47: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97EF6: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BD0950: _snd_pcm_softvol_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97F35: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BB608B: _snd_pcm_plug_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== Address 0x7FEFFF787 is on thread 1's stack
==17628==
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x9BCB49A: snd_pcm_direct_client_connect (in
/usr/lib64/libasound.so. 0.0)
==17628== by 0x9BC76E4: snd_pcm_dmix_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BC7D5D: _snd_pcm_dmix_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97C47: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97EF6: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BD0950: _snd_pcm_softvol_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97F35: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BB608B: _snd_pcm_plug_open (in
/usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B976F2: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B97F35: snd_pcm_open_slave (in
/usr/lib64/libasound.so.2.0.0)
==17628==
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x9BC5CBA: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BC7068: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B9752B: snd_pcm_close (in /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BB4353: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B9752B: snd_pcm_close (in /usr/lib64/libasound.so.2.0.0)
==17628== by 0x50C1D61: (within /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50BE26F: SDL_AudioInit (in /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50BCC0D: SDL_InitSubSystem (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50BCCFE: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x43C721: JukeBox::Init() (jukebox.cpp:67)
==17628== by 0x40DAFC: AppWormux::Init(int, char**) (main.cpp:131)
==17628== by 0x40D5E4: AppWormux::main(int, char**) (main.cpp:64)
==17628==
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x9BCAA9E: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BC7070: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B9752B: snd_pcm_close (in /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9BB4353: (within /usr/lib64/libasound.so.2.0.0)
==17628== by 0x9B9752B: snd_pcm_close (in /usr/lib64/libasound.so.2.0.0)
==17628== by 0x50C1D61: (within /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50BE26F: SDL_AudioInit (in /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50BCC0D: SDL_InitSubSystem (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50BCCFE: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x43C721: JukeBox::Init() (jukebox.cpp:67)
==17628== by 0x40DAFC: AppWormux::Init(int, char**) (main.cpp:131)
==17628== by 0x40D5E4: AppWormux::main(int, char**) (main.cpp:64)
Opened audio at 44100 Hz 16 bit
==17628==
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x50E2244: X11_SetKeyboardState (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50E25A4: X11_PumpEvents (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50EF265: SDL_PumpEvents (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50EF2A8: SDL_PollEvent (in /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x446585: Main_Menu::Run() (main_menu.cpp:241)
==17628== by 0x40D6BB: AppWormux::main(int, char**) (main.cpp:70)
==17628== by 0x40E87A: main (main.cpp:236)
==17628==
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x50E226D: X11_SetKeyboardState (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50E25A4: X11_PumpEvents (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50EF265: SDL_PumpEvents (in
/usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x50EF2A8: SDL_PollEvent (in /usr/lib64/libSDL-1.2.so.0.7.1)
==17628== by 0x446585: Main_Menu::Run() (main_menu.cpp:241)
==17628== by 0x40D6BB: AppWormux::main(int, char**) (main.cpp:70)
==17628== by 0x40E87A: main (main.cpp:236)
[ Starting a new game ]
Loading game... => Splashscreen is TODO
o Inizializzazione
o Find a random position for characters
o Ground initialization... completo
o Initialise objects
==17628==
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x496605: WeaponProjectile::Draw() (launcher.cpp:231)
==17628== by 0x46683E: ObjectsList::Draw() (objects_list.cpp:112)
==17628== by 0x418C59: GameLoop::Draw() (game_loop.cpp:417)
==17628== by 0x418FD5: GameLoop::CallDraw() (game_loop.cpp:454)
==17628== by 0x41925B: GameLoop::Run() (game_loop.cpp:481)
==17628== by 0x415EB2: Game::Start() (game.cpp:233)
==17628== by 0x450AD9: GameMenu::__sig_ok() (game_menu.cpp:193)
==17628== by 0x448E4C: Menu::sig_ok() (menu.cpp:55)
==17628== by 0x448FA0: Menu::BasicOnClic(Vector2<int> const&)
(menu.cpp:69)
==17628== by 0x449103: Menu::Run() (menu.cpp:124)
==17628== by 0x40D7DA: AppWormux::main(int, char**) (main.cpp:78)
==17628== by 0x40E87A: main (main.cpp:236)
==17628==
==17628== Conditional jump or move depends on uninitialised value(s)
==17628== at 0x429FCD: Vector2<int>::operator>=(Vector2<int>
const&) const (vector h:73)
==17628== by 0x429EF4: Rectangle<int>::Contains(Vector2<int>) const
(rectangle.h:2 )
==17628== by 0x44045A: WeaponMenuItem::MouseOn(Vector2<int> const&)
(weapon_menu.c :132)
==17628== by 0x441E7D: WeaponsMenu::MouseOver(Vector2<int> const&)
(weapon_menu.cp 458)
==17628== by 0x441BDB: WeaponsMenu::Draw() (weapon_menu.cpp:405)
==17628== by 0x457FDD: Interface::Draw() (interface.cpp:250)
==17628== by 0x418E04: GameLoop::Draw() (game_loop.cpp:436)
==17628== by 0x418FD5: GameLoop::CallDraw() (game_loop.cpp:454)
==17628== by 0x41925B: GameLoop::Run() (game_loop.cpp:481)
==17628== by 0x415EB2: Game::Start() (game.cpp:233)
==17628== by 0x450AD9: GameMenu::__sig_ok() (game_menu.cpp:193)
==17628== by 0x448E4C: Menu::sig_ok() (menu.cpp:55)
o MSG: The ball left the battlefield before exploding
o MSG: The ball left the battlefield before exploding
o MSG: The ball left the battlefield before exploding
o MSG: The ball left the battlefield before exploding
o MSG: Gorfou è caduto nell'acqua.
o MSG: The ball left the battlefield before exploding
o MSG: The ball left the battlefield before exploding
o MSG: The ball left the battlefield before exploding
o MSG: The ball left the battlefield before exploding
o MSG: Papou è caduto nell'acqua.
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
o MSG: The ball left the battlefield before exploding
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
==17628== Warning: invalid file descriptor 1019 in syscall open()
object/object_cfg.cpp:55: Missed assertion "doc.Charge (file)".
==17628==
==17628== Thread 2:
==17628== Invalid free() / delete / delete[]
==17628== at 0x4A1B8EC: free (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memchec so)
==17628== by 0x61EF66F: (within /lib64/tls/libc.so)
==17628== by 0x61EF201: __libc_freeres (in /lib64/tls/libc.so)
==17628== by 0x49184BC: _vgnU_freeres (in
/usr/lib64/valgrind/amd64-linux/vgpreloa core.so)
==17628== by 0x1: ???
==17628== Address 0x4038C48 is not stack'd, malloc'd or (recently) free'd
==17628==
==17628== ERROR SUMMARY: 3893 errors from 10 contexts (suppressed: 6 from 1)
==17628== malloc/free: in use at exit: 64,799,074 bytes in 47,054 blocks.
==17628== malloc/free: 1,014,385 allocs, 967,332 frees, 433,700,854
bytes allocated.
==17628== For counts of detected errors, rerun with: -v
==17628== searching for pointers to 47,054 not-freed blocks.
==17628== checked 85,467,768 bytes.
==17628==
==17628== LEAK SUMMARY:
==17628== definitely lost: 706,522 bytes in 13,121 blocks.
==17628== possibly lost: 88,194 bytes in 1,573 blocks.
==17628== still reachable: 64,004,358 bytes in 32,360 blocks.
==17628== suppressed: 0 bytes in 0 blocks.
==17628== Use --leak-check=full to see details of leaked memory.
Killed
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?func=detailitem&item_id=6589>
_______________________________________________
Message posté via/par Gna!
http://gna.org/
_______________________________________________
Wormux-gna mailing list
[email protected]
https://mail.gna.org/listinfo/wormux-gna