[ODE] SIGSEGV in dSolveLCP() at ode/src/lcp.cpp:1137

Michael Lacher michael.lacher at hlw.co.at
Fri Feb 13 12:10:54 MST 2004


Adam D. Moss wrote:

> We're getting a bit off-track.
> 
> This discussion is simply about macroizing the solver's
> alloca() (strictly stack-based) usage to optionally allow
> a fake-stack solution for platforms and situations that
> want it.  What alloca() gets replaced with is just a detail,
> and since it's just a stack it doesn't need the grand unified
> theory of memory management overengineering thrown at it.
> 
> Abstracting away ALL of ODE's memory management is something
> good to work towards, but that's a pretty orthogonal discussion
> that doesn't have much bearing on the alloca()-wrapper (the
> latter would simply optionally be layered whatever heap
> abstraction the app ends up adopting, which in the long
> term I think needs more careful ODE-specific analysis w.r.t.
> object grouping and lifetime if we're going to see efficiency
> wins as well as convenience).
> 
> Regards,
> --Adam

good point :)

Just one last question before i stop going further OT:
The main memory problem seems to be the LCP solver in ODE. Are these 
allocations even in a stack ? Or is the LCP solver just called a few 
times per dWordStep() (once for each island) in a serial manner anyway ? 
Because in the latter case one could just skip the whole allocation part 
totally and provide a constant, fixed memory block to be used by the LCP 
solver which is resused without allocation stuff going on.

mucki



More information about the ODE mailing list