Revision: 26584
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26584
Author:   campbellbarton
Date:     2010-02-03 16:50:08 +0100 (Wed, 03 Feb 2010)

Log Message:
-----------
use fpe_handler on linux when running with -d, this runs a function rarther 
then quitting, use for setting breakpoints to find where nan/inf occur.

Modified Paths:
--------------
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c      2010-02-03 15:44:19 UTC (rev 
26583)
+++ trunk/blender/source/creator/creator.c      2010-02-03 15:50:08 UTC (rev 
26584)
@@ -134,7 +134,8 @@
 /* Initialise callbacks for the modules that need them */
 static void setCallbacks(void); 
 
-#if defined(__sgi) || defined(__alpha__)
+/* on linux set breakpoints here when running in debug mode, useful to catch 
floating point errors */
+#if defined(__sgi) || defined(__linux__)
 static void fpe_handler(int sig)
 {
        // printf("SIGFPE trapped\n");
@@ -899,14 +900,6 @@
 #ifdef __FreeBSD__
        fpsetmask(0);
 #endif
-#ifdef __linux__
-    #ifdef __alpha__
-       signal (SIGFPE, fpe_handler);
-    #endif
-#endif
-#if defined(__sgi)
-       signal (SIGFPE, fpe_handler);
-#endif
 
        // copy path to executable in bprogname. playanim and creting runtimes
        // need this.
@@ -947,11 +940,17 @@
        setuid(getuid()); /* end superuser */
 #endif
 
+#if defined(__sgi) || defined(__linux__)
+       if(G.f & G_DEBUG) {
+               /* zealous but makes float issues a heck of a lot easier to 
find!
+                * set breakpoints on fpe_handler */
+               signal(SIGFPE, fpe_handler);
+
 #ifdef __linux__
-       /* zealous but makes float issues a heck of a lot easier to find! */
-       if(G.f & G_DEBUG)
                feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW );
 #endif
+       }
+#endif
 
        /* for all platforms, even windos has it! */
        if(G.background) signal(SIGINT, blender_esc);   /* ctrl c out bg render 
*/


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

Reply via email to