Page 1 of 1

understanding stacktrace translation

Posted: 31 Jul 2007, 13:48
by 1v0ry_k1ng
I have reason to beleive theres a line of bad code in XTA, but I dont understand the stacktrace translation
(0) CCobInstance::EmitSfx(int, int)
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Sim/Units/COB/CobInstance.cpp:648

(1) CCobThread::Tick(int)
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Sim/Units/COB/CobThread.cpp:515

(2) CCobInstance::RealCall(int, std::vector<int, std::allocator<int> >&, void (*)(int, void*, void*), void*, void*)
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Sim/Units/COB/CobInstance.cpp:259

(3) CCobInstance::Call(int)
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Sim/Units/COB/CobInstance.cpp:192

(4) CWeapon::Update()
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Sim/Weapons/Weapon.cpp:292

(5) CMissileLauncher::Update()
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Sim/Weapons/MissileLauncher.cpp:43

(6) CUnit::Update()
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Sim/Units/Unit.cpp:430

(7) CUnitHandler::Update()
/opt/mingw42/lib/gcc/i586-mingw32msvc/4.2.0/include/c++/bits/stl_list.h:150

(8) CGame::SimFrame()
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Game/Game.cpp:2379

(9) CGame::ClientReadNet()
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Game/Game.cpp:2736

(10) CGame::Update()
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/Game/Game.cpp:1776

(11) SpringApp::Update()
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/System/Main.cpp:838

(12) SpringApp::Run(int, char**)
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/System/Main.cpp:1023

(13) Run(int, char**)
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/System/Main.cpp:1083

(14) WinMain@16
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/rts/System/Main.cpp:1146

(15) luabind::detail::create_class::stage2(lua_State*)
/var/lib/buildbot/spring_slave/mingw32-4.2.0/build/lua/luabind/src/create_class.cpp:104

(16) ??
WeaponDefHandler.cpp:0

(17) ??
WeaponDefHandler.cpp:0

(18) ??
??:0
what should this tell me?

Posted: 31 Jul 2007, 14:44
by Kloot
That somebody borked up an explosion generator.

Posted: 31 Jul 2007, 14:45
by 1v0ry_k1ng
thx, any idea of the name of the explosion or anything that would help finding it?

Posted: 31 Jul 2007, 17:34
by Peet
Well the top line is the function that caused the exception, obviously a call for a CEG. No way to tell which one though, without a debug haxxed version of spring (which you'll have to bug someone to compile, and is very very slow).

Posted: 31 Jul 2007, 18:00
by Kloot
The Arm Swatter seems to have a type bitmask of 1025, so it's referencing an invalid array position (1) or a corrupt CEG. To reproduce, do:

Code: Select all

.cheat
.give arm_swatter
<tell the Swatter to force-fire>

Posted: 01 Aug 2007, 10:42
by 1v0ry_k1ng
ah ha! swatter crashes the game! thankyou kloot :-) ! is there any other problems given by the stacktrace?

Re:

Posted: 21 Feb 2009, 12:52
by hoijui
Kloot wrote:

Code: Select all

.cheat
.give arm_swatter
<tell the Swatter to force-fire>
this works fine with XTA 9.52 -> mantis bug 0000589 closed

Re: understanding stacktrace translation

Posted: 21 Feb 2009, 14:13
by Kloot
This was not just a mod-side problem; the engine did not perform any explosion generator index bounds-checks pre-76b1, which actually caused the crash reported here. (--> you might want to use '->' less quickly in the future :)) Also, there is no need to kick old threads whenever you close an ancient Mantis entry that references them.

Re: understanding stacktrace translation

Posted: 21 Feb 2009, 17:40
by hoijui
yeah ok, i should not hav eresurrected the thread, but the problem presented by the bug report was fixed. it was not visible from the bug report and this thread, that there was an other problem, so its justified anyway, that i closed the bug.