[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [glob2-devel] glob2 0.8.22 crash: ConfigVector<T>::get(size_t) [with
From: |
Joe Wells |
Subject: |
Re: [glob2-devel] glob2 0.8.22 crash: ConfigVector<T>::get(size_t) [with T = BuildingType]: Assertion `false' failed. |
Date: |
Fri, 06 Apr 2007 12:47:27 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Kai Antweiler <address@hidden> writes:
>> Okay, I've done this. I ran starting from the autosave file, and
>> within about two minutes got the same crash (i.e., the exact same
>> crash error message, character for character, including the same id
>> number 4294967295). A transcript of my gdb session is below. What
>> should I be doing to get a backtrace that shows the arguments to
>> method calls?
>
> recompile glob2:
> ./configure CXXFLAGS="-O2 -g"
> make clean
> make
This didn't work. All of the g++ command lines had “-O3 -march=i686”
and none of them had “-O2 -g”.
It worked when I replaced “make” by “make CXXFLAGS="-O2 -g"”.
> Then run the game again.
> inside gdb: you can use the command "frame 4" to get to know more
> about ConfigVector<BuildingType>::get ()
> With "list" you can look into the soure code.
> With "print" you can get values of variables.
New “bt full” output below. “ConfigVector<BuildingType>::get ()” is
no longer listed as a separate stack frame. It looks like it got
inlined.
> Please file bugs in our tracker, otherwise we will forget about some
> bugs. If the autosave is small enough you can upload it to the tracker.
> Your mails are fine. But we get so many bug reports right now that I
> fear we forget some, if they are only listed in the mailing list.
I'm afraid you'll have to wait on this. I've spent too much time on
glob2 already! I think I've used up my entertainment time budget for
the next several months already. :-(
> Just copy and paste. Create several bug reports - one for each issue:
> http://savannah.nongnu.org/bugs/?group=glob2
Um, I have listed a _lot_ of issues. Perhaps you could indicate which
precise ones are worth separate bug reports.
> I can confirm what you said in the other thread about incompatibility
> of maps created in 0.8.21 and 0.8.22 .
Okay, good.
> The new bad memory management is serious too.
Have you reproduced it?
> I have found another bug. I will put this into the tracker.
>
> I tried to load a save game:
>
> 0.8.22-rc:
> game crashed:
> glob2: Unit.cpp:962: void Unit::handleDisplacement(): Assertion
> `displacement!=DIS_RANDOM' failed.
Yes, I'm getting this same crash too.
> 0.8.21:
> No crash, but game wasn't loaded:
> Map:: Failed to find signature at the end of Map.
Hmm. I haven't yet retried with 0.8.21 the saved game that failed
with 0.8.22.
> The games were saved sometime in february.
> New games work.
--
Joe
----------------------------------------------------------------------
~/<3>glob2-0.8.22/src > gdb ./glob2 /mnt/foo/jbw/core.11364
GNU gdb 6.4-debian
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library
"/lib/tls/i686/cmov/libthread_db.so.1".
Core was generated by
`/home/jbw/Desktop/software/glob-debugging/glob2-0.8.22/src/glob2 -s1344x736'.
Program terminated with signal 6, Aborted.
warning: Can't read pathname for load map: Input/output error.
Reading symbols from /usr/lib/libGLU.so.1...done.
Loaded symbols for /usr/lib/libGLU.so.1
Reading symbols from /usr/lib/libGL.so.1...done.
Loaded symbols for /usr/lib/libGL.so.1
Reading symbols from /usr/lib/libspeex.so.1...done.
Loaded symbols for /usr/lib/libspeex.so.1
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libSDL-1.2.so.0...done.
Loaded symbols for /usr/lib/libSDL-1.2.so.0
Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...done.
Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0
Reading symbols from /usr/lib/libSDL_image-1.2.so.0...done.
Loaded symbols for /usr/lib/libSDL_image-1.2.so.0
Reading symbols from /usr/lib/libSDL_net-1.2.so.0...done.
Loaded symbols for /usr/lib/libSDL_net-1.2.so.0
Reading symbols from /usr/lib/libSDL_ttf-2.0.so.0...done.
Loaded symbols for /usr/lib/libSDL_ttf-2.0.so.0
Reading symbols from /usr/lib/libvorbisfile.so.3...done.
Loaded symbols for /usr/lib/libvorbisfile.so.3
Reading symbols from /usr/lib/libvorbis.so.0...done.
Loaded symbols for /usr/lib/libvorbis.so.0
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/tls/i686/cmov/libm.so.6...done.
Loaded symbols for /lib/tls/i686/cmov/libm.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/tls/i686/cmov/libc.so.6...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /usr/lib/libX11.so.6...done.
Loaded symbols for /usr/lib/libX11.so.6
Reading symbols from /usr/lib/libXext.so.6...done.
Loaded symbols for /usr/lib/libXext.so.6
Reading symbols from /usr/lib/libXxf86vm.so.1...done.
Loaded symbols for /usr/lib/libXxf86vm.so.1
Reading symbols from /lib/tls/i686/cmov/libdl.so.2...done.
Loaded symbols for /lib/tls/i686/cmov/libdl.so.2
Reading symbols from /usr/lib/libdrm.so.2...done.
Loaded symbols for /usr/lib/libdrm.so.2
Reading symbols from /usr/lib/libasound.so.2...done.
Loaded symbols for /usr/lib/libasound.so.2
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /usr/lib/libtiff.so.4...done.
Loaded symbols for /usr/lib/libtiff.so.4
Reading symbols from /usr/lib/libjpeg.so.62...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /usr/lib/libpng12.so.0...done.
Loaded symbols for /usr/lib/libpng12.so.0
Reading symbols from /usr/lib/libfreetype.so.6...done.
Loaded symbols for /usr/lib/libfreetype.so.6
Reading symbols from /usr/lib/libogg.so.0...done.
Loaded symbols for /usr/lib/libogg.so.0
Reading symbols from /usr/lib/libXau.so.6...done.
Loaded symbols for /usr/lib/libXau.so.6
Reading symbols from /usr/lib/libXcursor.so.1...done.
Loaded symbols for /usr/lib/libXcursor.so.1
Reading symbols from /usr/lib/libXrender.so.1...done.
Loaded symbols for /usr/lib/libXrender.so.1
Reading symbols from /usr/lib/libXfixes.so.3...done.
Loaded symbols for /usr/lib/libXfixes.so.3
Reading symbols from /lib/tls/i686/cmov/libnss_compat.so.2...done.
Loaded symbols for /lib/tls/i686/cmov/libnss_compat.so.2
Reading symbols from /lib/tls/i686/cmov/libnsl.so.1...done.
Loaded symbols for /lib/tls/i686/cmov/libnsl.so.1
Reading symbols from /lib/tls/i686/cmov/libnss_nis.so.2...done.
Loaded symbols for /lib/tls/i686/cmov/libnss_nis.so.2
Reading symbols from /lib/tls/i686/cmov/libnss_files.so.2...done.
Loaded symbols for /lib/tls/i686/cmov/libnss_files.so.2
#0 0xffffe410 in __kernel_vsyscall ()
(gdb) bt full
#0 0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1 0xb7bbd9a1 in raise () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#2 0xb7bbf2b9 in abort () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#3 0xb7bb6f51 in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#4 0x080b06ad in Building::removeForbiddenZoneFromUpgradeArea (this=0x8cb3408)
at ConfigFiles.h:181
midPosY = 23
newPosY = <value optimized out>
newWidth = <value optimized out>
newHeight = <value optimized out>
midPosX = 63
targetLevelTypeNum = -1
targetBt = <value optimized out>
newPosX = <value optimized out>
__PRETTY_FUNCTION__ = "void
Building::removeForbiddenZoneFromUpgradeArea()"
#5 0x080b0743 in Building::updateBuildingSite (this=0x8cb3408)
at Building.cpp:888
__PRETTY_FUNCTION__ = "void Building::updateBuildingSite()"
#6 0x081b0a15 in Unit::handleDisplacement (this=0x8c88768) at Unit.cpp:1047
distance = <value optimized out>
usr = <value optimized out>
usr2 = <value optimized out>
__PRETTY_FUNCTION__ = "void Unit::handleDisplacement()"
#7 0x081b4e85 in Unit::endOfAction (this=0x8c88768) at Unit.cpp:2214
No locals.
#8 0x081b4f27 in Unit::syncStep (this=0x8c88768) at Unit.cpp:526
__PRETTY_FUNCTION__ = "void Unit::syncStep()"
#9 0x081a7a4b in Team::syncStep (this=0x8c90ae8) at Team.cpp:1071
u = (Unit *) 0x8c88768
isDirtyGlobalGradient = <value optimized out>
isEnoughFoodInSwarm = <value optimized out>
isDying = <value optimized out>
nbUsefullUnits = 54
nbUsefullUnitsAlone = 44
__PRETTY_FUNCTION__ = "void Team::syncStep()"
#10 0x080d5c58 in Game::syncStep (this=0xbfac74e4, localTeam=0)
at Game.cpp:1174
i = 0
startTick = 41624
__PRETTY_FUNCTION__ = "void Game::syncStep(Sint32)"
#11 0x080cf1c8 in Engine::run (this=0xbfac74e4) at Engine.cpp:485
fileName =
{<std::basic_string<char,std::char_traits<char>,std::allocator<char> >> =
{static npos = 4294967295,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> =
{<No data fields>}, <No data fields>},
_M_p = 0x10 <Address 0x10 out of bounds>}}, argLevel = 137310980}
__PRETTY_FUNCTION__ = "int Engine::run()"
#12 0x080fe5a0 in Glob2::run (this=0xbfacec37, argc=0, argv=0x0)
at Glob2.cpp:335
css = {<Glob2Screen> = {<GAGGUI::Screen> = {_vptr.Screen = 0x3,
widgets = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<GAGGUI::Widget*> >> =
{<__gnu_cxx::new_allocator<std::_Rb_tree_node<GAGGUI::Widget*> >> = {<No data
fields>}, <No data fields>},
_M_key_compare = {<> = {<No data fields>}, <No data fields>},
_M_header = {_M_color = std::_S_red, _M_parent = 0xb7dbcfd8,
_M_left = 0x4d6, _M_right = 0xb7cc1358},
_M_node_count = 3083604768}}}, run = 32, returnCode = -1211362528,
gfx = 0xb7fee778, animationFrame = -1210075192},
randomSeed = -1211111400}, title = 0xbfaceb60, ok = 0xb7cc1358,
cancel = 0xb7dfb974, fileList = 0xb78e0f78}
rc_css = <value optimized out>
__PRETTY_FUNCTION__ = "int Glob2::run(int, char**)"
#13 0x080ffdaf in main (argc=0, argv=0x0) at Glob2.cpp:491
glob2 = {static verbose = <optimized out>, isRunning = true}
(gdb)