[ODE] dMessage crashes my system
Santi Ontañón
santi.ontanon at terra.es
Tue Mar 30 12:31:45 MST 2004
Thanks! That was exactly the problem, now I can run ODE without any crash.
However, my simulation now gives error messages and I obtain
non-physical behavior. My problem is the following one:
- If I set friction = dInfinity, everything works fine. But if I set
friction = 0 or 1 (or any other small constant), two of the boxes of my
simulation enter one inside of the other (while ODE gives messages: "LCP
internal error, s <= 0 (s=0.0000)"), and suddently they collide with
such a strength (since they are one inside the other), that both boxes
run away of my simuation field.
Should I always set friction = dInfinity? I'd like to have surfaces with
lower frictions... do I have to do something special to support them?
thanks in advance!
Jon Watte wrote:
>Typically when stdout functions crash in MSDEV, you are not linking with the correct version of the runtime libraries for your compiler. I e, perhaps ODE was linked with DLL Debug Runtime, and your app with Single-Threaded Static runtime.
>
>Typically, you need to set everything to link to the DLL multi-threaded runtime, and make sure you use all Debug components if you're making a debug build, and all Release components if you're making a release build. Yes, this means you gotta build ODE twice: once for debug, once for release.
>
>Cheers,
>
> / h+
>
>
>-----Original Message-----
>From: ode-bounces at q12.org [mailto:ode-bounces at q12.org]On Behalf Of Santi
>Ontañón
>Sent: Monday, March 29, 2004 7:14 AM
>To: ode at q12.org
>Subject: [ODE] dMessage crashes my system
>
>
>Hi everybody,
>
>I'm new to ODE, and I'm having some problems. I use ODE 0.039 compiled
>using VC++ 6.0 for windows (I use Windows ME). After several sucessful
>trials with some cubes and joints, I've found a scenario where ODE
>crashes my system. I've traced the problem, and the program crashes in
>this point of the code in the file lcp.cpp:
>
>...
> // if s <= 0 then we've got a problem. if we just keep going then
> // we're going to get stuck in an infinite loop. instead, just cross
> // our fingers and exit with the current solution.
> if (s <= 0) {
> dMessage (d_ERR_LCP, "LCP internal error, s <= 0 (s=%.4e)",s);
> if (i < (n-1)) {
> dSetZero (x+i,n-i);
> dSetZero (w+i,n-i);
> }
> goto done;
> }
>...
>
>It exactly crashes when callind "dMessage", and in more detail, it
>crashes inside dMessage in this function (in file error.cpp):
>
>static void printMessage (int num, const char *msg1, const char *msg2,
> va_list ap)
>{
> fflush (stderr);
> fflush (stdout);
> if (num) fprintf (stderr,"\n%s %d: ",msg1,num);
> else fprintf (stderr,"\n%s: ",msg1);
> vfprintf (stderr,msg2,ap);
> fprintf (stderr,"\n");
> fflush (stderr);
>}
>
>The crash occurs when calling "fflush(stderr)".
>Anyone knows how to solve this problem? I'm tempted to simply delete the
>call do "dMessage", but I'd like a "neater" solution!
>
>thanks in advance
>
>santi
>
>_______________________________________________
>ODE mailing list
>ODE at q12.org
>http://q12.org/mailman/listinfo/ode
>
>
>
>
More information about the ODE
mailing list