+void
+mono_print_unhandled_exception (MonoObject *exc)
+{
+ char *message = g_strdup ("");
+ char *trace = g_strdup ("");
+ MonoString *str;
+
+ if (mono_object_isinst (exc, mono_defaults.exception_class)) {
+ if ((str = ((MonoException *)exc)->message))
+ message = mono_string_to_utf8 (str);
+ if ((str = ((MonoException *)exc)->stack_trace))
+ trace = mono_string_to_utf8 (str);
+ }
+
+ g_warning ("unhandled exception %s.%s: \"%s\"", exc->vtable->klass->name_space,
+ exc->vtable->klass->name, message);
+
+ if (trace) {
+ g_printerr (trace);
+ g_printerr ("\n");
+ }
+
+ g_free (message);
+ g_free (trace);
+}
+