[ODE] crash prevention?

Martin C. Martin martin at metahuman.org
Mon Jul 14 20:10:02 2003


Well, dMessage() is trying to print a debugging message.  Are you
executing your program from the command line?  If not, maybe that's your
problem.

Why don't you just stop execution when joints come too far apart or linear
or angular velocities become too large?  That's the standard solution.

- Martin

ray@his.atr.co.jp wrote:
> 
> ODE:
> 
> I am evolving "virtual creatures".  You can see my implementation
> under MathEngine:
> 
> http://www.his.atr.co.jp/~ray/VirtualLife/
> 
> I am porting to ODE, and want to ask advice on a certain problem.
> Under MathEngine, some creatures explode, but these explosions
> do not crash the software.  Under ODE, the software frequently
> crashes, always in exactly the same place (see below).  I need
> to be able to "handle" this error so as to prevent the crash,
> so that I can generate and select large numbers of creatures
> in a genetic algorithm.
> 
> Any advice on how to catch and handle this error before the crash?
> 
> ----
> 
> NTDLL! 77f51c96()
> NTDLL! 77f7e265()
> MSVCRTD! 1021700f()
> VIRTUALLIFE! dMessage + 84 bytes
> VIRTUALLIFE! dMessage + 64 bytes
> VIRTUALLIFE! dNormalize4 + 194 bytes
> VIRTUALLIFE! dInternalStepIsland_x1(struct dxWorld *,struct dxBody * const *,int,struct dxJoint * const *,int,float) + 5681 bytes
> VIRTUALLIFE! dInternalStepIsland_x2(struct dxWorld *,struct dxBody * const *,int,struct dxJoint * const *,int,float) + 6332 bytes
> VIRTUALLIFE! dInternalStepIsland(struct dxWorld *,struct dxBody * const *,int,struct dxJoint * const *,int,float) + 32 bytes
> VIRTUALLIFE! dWorldStep + 753 bytes
> VIRTUALLIFE! dWorldStep + 88 bytes
> CreatureTick(RRender * 0x00328de8) line 557 + 19 bytes
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode