[llvmonly] Catch all exceptions in mono_jit_exec () to avoid terminating the runtime...
authorZoltan Varga <vargaz@gmail.com>
Fri, 29 Jan 2016 20:03:46 +0000 (15:03 -0500)
committerZoltan Varga <vargaz@gmail.com>
Fri, 29 Jan 2016 20:03:46 +0000 (15:03 -0500)
mono/mini/driver.c

index 2bf88c38789259da84e3417fc7d62f2e1b3f60e8..963ceccb560316d30a58444f635c48f1ef8f1ede 100644 (file)
@@ -1019,7 +1019,20 @@ mono_jit_exec (MonoDomain *domain, MonoAssembly *assembly, int argc, char *argv[
                return 1;
        }
        
-       return mono_runtime_run_main (method, argc, argv, NULL);
+       if (mono_llvm_only) {
+               MonoObject *exc;
+               int res;
+
+               res = mono_runtime_run_main (method, argc, argv, &exc);
+               if (exc) {
+                       mono_unhandled_exception (exc);
+                       mono_invoke_unhandled_exception_hook (exc);
+                       return 1;
+               }
+               return res;
+       } else {
+               return mono_runtime_run_main (method, argc, argv, NULL);
+       }
 }
 
 typedef struct