Revision: 4826
          http://sourceforge.net/p/vexi/code/4826
Author:   mkpg2
Date:     2015-11-10 15:52:57 +0000 (Tue, 10 Nov 2015)
Log Message:
-----------
Improve Debugging. Show thread name when catching unhandled exceptions.

Modified Paths:
--------------
    branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java
    branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Scheduler.java
    branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Thread.java
    branches/vexi3/org.vexi-library.js/src/poke/java/org/ibex/js/JSUX.java

Modified: branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java
===================================================================
--- branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java       
2015-11-10 15:33:49 UTC (rev 4825)
+++ branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java       
2015-11-10 15:52:57 UTC (rev 4826)
@@ -451,5 +451,22 @@
                throw new JSExn("Unsupported charset: "+name+" - 
"+e.getMessage());
        }
        }
+    
+       static public String backtrace(Interpreter i) {
+               JSExn e = new JSExn("");
+               e.fillIfEmpty(i);
+               return backtrace(e);
+       }
 
+       static public String backtrace(JSExn e) {
+               StringBuilder r = new StringBuilder();
+               String msg = e.asObject().getMessage();
+               if(msg!=null)
+                       r.append(msg+"\n");
+        for (int i=0; i < e.backtrace.size(); i++){
+            r.append("    at " + (String) e.backtrace.get(i));
+            r.append("\n");
+        }
+               return r.toString();
+       }
 }

Modified: 
branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Scheduler.java
===================================================================
--- branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Scheduler.java 
2015-11-10 15:33:49 UTC (rev 4825)
+++ branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Scheduler.java 
2015-11-10 15:52:57 UTC (rev 4826)
@@ -119,21 +119,22 @@
                     Log.uInfo(Scheduler.class, "Scheduler halted: " + 
e.getMessage());
                     return;*/
                 } catch (Exception e) {
-                    // HACK for running tests, as we need to pass any
+                    // REMARK for running tests, as we need to pass any
                     // uncaught js/assertion exceptions out.
                     if (quitOnExn) {
                         return e;
                     }
                     
-                    // FIXME - are these messages always accurate(!) Could 
look at current
-                    // task for more information
-                    if (e instanceof JSExn) {
-                        logger.error(Scheduler.class, "A JavaScript thread 
spawned with vexi.thread threw an exception:");
-                        ((JSExn)e).printStackTrace(Logger.ERROR, logger, 
Scheduler.class);
-                    } else {
-                        logger.error(Scheduler.class, "A Callable threw an 
exception which was caught by the scheduler:");
-                        logger.error(Scheduler.class, e);
+                    if(current instanceof Thread){
+                        logger.error(Scheduler.class, "Vexiscript unhandled 
exception - "+((Thread)current).description()+":");
+                    }else{
+                       logger.error(Scheduler.class, "Background call 
unhandled exception:");                        
                     }
+                    if(e instanceof JSExn){
+                       ((JSExn)e).printStackTrace(Logger.ERROR, logger, 
Scheduler.class);
+                    }else{
+                       logger.error(Scheduler.class, e);
+                    }                    
                 }
                 // if an Error is thrown it will cause the engine to quit
             }

Modified: 
branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Thread.java
===================================================================
--- branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Thread.java    
2015-11-10 15:33:49 UTC (rev 4825)
+++ branches/vexi3/org.vexi-library.js/src/main/java/org/ibex/js/Thread.java    
2015-11-10 15:52:57 UTC (rev 4826)
@@ -87,7 +87,7 @@
                            faction.setJSThread(null);
                        }
                }
-       }
+       }       
        
        public String description() {
                if (f!=null) {
@@ -96,16 +96,17 @@
                        if(thread_name!=null){
                                r += " - "+thread_name;
                        }
-                       if(currentInterpreter!=null){
-                               r += JSUX.backtrace(currentInterpreter);        
-                       }
-                               
                        return r;
                }
                return type; 
        }
        
        public String toString() {
-               return description(); 
+               String r = description();
+               if(currentInterpreter!=null){
+                       r += JSU.backtrace(currentInterpreter); 
+               }                       
+               return r;
+               
        }
 }

Modified: branches/vexi3/org.vexi-library.js/src/poke/java/org/ibex/js/JSUX.java
===================================================================
--- branches/vexi3/org.vexi-library.js/src/poke/java/org/ibex/js/JSUX.java      
2015-11-10 15:33:49 UTC (rev 4825)
+++ branches/vexi3/org.vexi-library.js/src/poke/java/org/ibex/js/JSUX.java      
2015-11-10 15:52:57 UTC (rev 4826)
@@ -24,24 +24,9 @@
                return sw.toString();
        }
        
-       static public String backtrace(JSExn e) {
-               StringBuilder r = new StringBuilder();
-               String msg = e.asObject().getMessage();
-               if(msg!=null)
-                       r.append(msg+"\n");
-        for (int i=0; i < e.backtrace.size(); i++){
-            r.append("    at " + (String) e.backtrace.get(i));
-            r.append("\n");
-        }
-               return r.toString();
-       }
+       static public String backtrace(JSExn e) { return JSU.backtrace(e); }    
+       static public String backtrace(Interpreter i) { return 
JSU.backtrace(i); }
        
-       static public String backtrace(Interpreter i) {
-               JSExn e = new JSExn("");
-               e.fillIfEmpty(i);
-               return backtrace(e);
-       }
-       
     static public Object jsToDynamic(JS js) throws JSExn{
         // VERIFY - can js send every type even if the value
        // doesn't put it in that types range (double, but no

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to