[ODE] segv with memory allocation using dALLOCA16

Russ Smith russ at q12.org
Wed Nov 21 21:30:02 MST 2001


> It turns out that when requesting a larger then available memory
> segment it still returns a non null pointer. So I'm guessing that's
> whats happening and causing the seg fault (A isn't null when the segv
> occurs on line 795).

that'd be my guess too. currently ODE does not fail gracefully when
it runs out of stack mem.

> Is there any way to correct this?

you have nj=124, which BTW is a *lot* of joints in a single island.
what is the corresponding m value? check the amount of memory being
allocated for A. if you have 124 hinge joints this is still only
2.9 Mb being allocated for A (for dReal = double), that should fit on a
linux stack with no problems. use getrlimit() to check your stack upper
limit. does your application have a lot of mmap()s that might be
crowding the stack?

russ.

--
Russell Smith
http://www.q12.org



More information about the ODE mailing list