The argument --debug-fpe to enable floating point exceptions currently
only works on linux & SGI.

This command is useful for tracking down invalid floating point math,
divide by zero, invalid arguments to math.h functions & operations
resulting in NAN or INF, since you get a crash at the point in the
code where the error is made.

For example, it made finding this bug simple ([#22398 black pixels
with HDR textures).
http://markmail.org/message/vlkta3nzwmm3sywr

This is the function in creator.c now. just needs mac/windows #ifdefs,
probably not hard but needs testing by a developer who uses osx/win.

---

static int set_fpe(int argc, char **argv, void *data)
{
#if defined(__sgi) || defined(__linux__)
        /* zealous but makes float issues a heck of a lot easier to find!
         * set breakpoints on fpe_handler */
        signal(SIGFPE, fpe_handler);

#if defined(__linux__) && defined(__GNUC__)
        feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW );
#endif
#endif
        return 0;
}

-- 
- Campbell
_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to