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

Adam D. Moss adam at gimp.org
Thu Feb 12 11:56:36 MST 2004


Olivier Michel wrote:
> Well, it works fine now. I patched the lcp.cpp file as follow:

Interesting, though I can't help feeling that this was
still quite solvable from the app side.  Did you decrease your
step size and/or use many microsteps when using StepFast?  How
many?  Did no figure help?

> #define ALLOCA(x) malloc(x)
> #define FREEA(a) free(x)

(#define FREEA(x) free(x) ?)

> and I added a FREEA() for each ALLOCA() call in the source code. Now my 
> simulation never crashes (great!).
> We could do the same for other files (step.cpp, matrix.cpp, etc.) and 
> set up some #ifdef stuff so that the user can compile ODE in stack 
> allocation of dynamic allocation mode.
> 
> I volunteer to implement this patch if it will be integrated into the 
> main ODE CVS trunk.
> 
> Let me know what do you think about it.

I'm quite interested.  This is probably useful for non-realtime
complex systems that insist on using StepSlow; it's also essential
for any platforms that don't have alloca(), though I do suspect that
the fairly massive heap churn could render it unpleasant in those
situations.  What do other people think?

--Adam
-- 
Adam D. Moss   . ,,^^   adam at gimp.org   http://www.foxbox.org/   co:3
"At this point the rocket becomes engorged with astronauts."


More information about the ODE mailing list