[Bf-committers] 2.36 status...
Jacques Beaurain
jbeaurain at istop.com
Tue Dec 14 04:08:50 CET 2004
Hi,
Tried it over here on Windows XP (Visual Studio build) and managed to
crash using #2006 instructions. The call stack is below for those that
knows the game engine a bit better than I do (I don't at all, but would
like to). It is kind of hard to figure out what went wrong (although the
routine does look a bit unsafe to me; also explained below). I stop in
the SumoPhysicsController destructor a couple of times after hitting
escape and then crash here because I am inside a member function of an
invalid BP_Endpoint object.
blender.exe!BP_Endpoint::getType() Line 69 + 0x3 bytes C++
blender.exe!BP_EndpointList::stab(const BP_Endpoint & pos={...},
BP_ProxyList & proxies={...}) Line 44 + 0x8 bytes C++
blender.exe!BP_EndpointList::range(const BP_Endpoint & min={...},
const BP_Endpoint & max={...}, unsigned short & first=7, unsigned short
& last=62, BP_ProxyList & proxies={...}) Line 86 + 0x10 bytes C++
blender.exe!BP_EndpointList::removeInterval(unsigned short first=7,
unsigned short last=62, BP_ProxyList & proxies={...}) Line 155 C++
blender.exe!BP_Proxy::remove(BP_ProxyList & proxies={...}) Line 63
+ 0x37 bytes C++
blender.exe!BP_Scene::destroyProxy(BP_Proxy * proxy=0x04dd0648)
Line 55 C++
blender.exe!BP_DestroyProxy(BP_SceneHandle__ * scene=0x0367e398,
BP_ProxyHandle__ * proxy=0x04dd0648) Line 56 C++
blender.exe!DT_Scene::removeObject(DT_Object & object={...}) Line
129 + 0x17 bytes C++
blender.exe!DT_RemoveObject(DT_SceneHandle__ * scene=0x0465d3d0,
DT_ObjectHandle__ * object=0x04dd0518) Line 310 C++
blender.exe!SM_Scene::remove(SM_Object & object={...}) Line 150 +
0x14 bytes C++
blender.exe!SumoPhysicsController::~SumoPhysicsController() Line
71 C++
blender.exe!KX_SumoPhysicsController::~KX_SumoPhysicsController()
Line 217 + 0x20 bytes C++
blender.exe!KX_SumoPhysicsController::`scalar deleting
destructor'() + 0x14 bytes C++
blender.exe!SG_IObject::~SG_IObject() Line 165 + 0x27 bytes C++
blender.exe!SG_Spatial::~SG_Spatial() Line 91 + 0x24 bytes C++
blender.exe!SG_Node::~SG_Node() Line 66 + 0x1d bytes C++
blender.exe!SG_Node::`scalar deleting destructor'() + 0x14
bytes C++
blender.exe!KX_Scene::RemoveNodeDestructObject(SG_IObject *
node=0x035c4208, CValue * gameobj=0x03670958) Line 357 + 0x20 bytes C++
blender.exe!KX_SceneDestructionFunc(SG_IObject * node=0x035c4208,
void * gameobj=0x03670958, void * scene=0x0466ff78) Line 91 C++
blender.exe!SG_IObject::ActivateDestructionCallback() Line 129 +
0x1a bytes C++
blender.exe!SG_Node::Destruct() Line 128 C++
blender.exe!KX_Scene::RemoveObject(CValue * gameobj=0x03670958)
Line 644 C++
blender.exe!KX_Scene::~KX_Scene() Line 174 C++
blender.exe!KX_Scene::`scalar deleting destructor'() + 0x14
bytes C++
blender.exe!KX_KetsjiEngine::StopEngine() Line 836 + 0x21 bytes C++
blender.exe!StartKetsjiShell(ScrArea * area=0x046956dc, char *
scenename=0x046a00c6, Main * maggie=0x046899bc, int
always_use_expand_framing=1) Line 335 C++
blender.exe!start_game() Line 473 + 0x1b bytes C
blender.exe!do_view3d_buttons(short event=152) Line 3570 C
blender.exe!do_headerbuttons(short event=152) Line 2072 + 0x15
bytes C
blender.exe!scrarea_dispatch_header_events(ScrArea *
sa=0x04693634) Line 488 + 0xa bytes C
blender.exe!screen_dispatch_events() Line 963 + 0x9 bytes C
blender.exe!screenmain() Line 1216 C
blender.exe!main(int argc=1, unsigned char * * argv=0x01082da0)
Line 604 C
blender.exe!mainCRTStartup() Line 283 + 0x12 bytes C
kernel32.dll!7c816d4f()
kernel32.dll!7c8399f3()
Looking at BP_EndpointList::stab, it i (unsigned short) has been
decremented from 0 and now points to an invalid location (65535) in the
endpoint list. However count is still 1 and the loop continued which
caused the crash. With limited knowledge and time to investigate this at
the moment a quick fix seems to just do what I did in the patch
attached, I compiled with it and it seemed to resolve the problem, but I
did not try the other issues though. I did not look into this because of
time constraints right now and with my limited knowledge I expect that
something elsewhere is wrong, but hopefully someone can find this
information useful.
Cheers,
Jacques
BTW, the game seems to start okay, but then the screen goes grey after I
move around a bit (fall through the floor?) and when I hit escape the
abort happens.
Ton Roosendaal wrote:
> Hi,
>
> Went with Kester today over engine status. He advised to release,
> since for him the engine runs better than ever. :)
>
> The unsolved issue is still why we get crashes... the version running
> at Kester's survives bug #2006 and the conveyorbelt.blend without
> issues. All other tests done until now give crashes for it in release
> candidates built for Linux, OSX and Windows.
>
> Kester tried both building with scons and make, both run fine. CVS is
> on same level, no files forgotten to commit, no weird options for
> compiling. In short, a mystery still.
>
> If people have time to help, try to collect clues. Like is Solid
> really compiled OK? Is the intern/moto/ really OK? Full clean
> recompile done? No cvs sticky tags sneaked in?
>
> Kester; had no time to ask (darn timezones!) but can you upload your
> binary build?
>
> Clueless in Amsterdam,
>
> -Ton-
>
> ------------------------------------------------------------------------
> --
> Ton Roosendaal Blender Foundation ton at blender.org
> http://www.blender.org
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>
-------------- next part --------------
Index: extern/solid/src/broad/BP_EndpointList.cpp
===================================================================
RCS file: /cvsroot/bf-blender/blender/extern/solid/src/broad/BP_EndpointList.cpp,v
retrieving revision 1.2
diff -u -r1.2 BP_EndpointList.cpp
--- extern/solid/src/broad/BP_EndpointList.cpp 16 Feb 2004 15:59:04 -0000 1.2
+++ extern/solid/src/broad/BP_EndpointList.cpp 15 Nov 2004 02:57:30 -0000
@@ -47,6 +47,8 @@
--count;
}
assert(i != 0 || count == 0);
+ if (i == 0)
+ break;
--i;
}
}
More information about the Bf-committers
mailing list