From 717a9582560a333a60191eb83c61ef179419949f Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 10 May 2015 00:55:35 +0300 Subject: [PATCH] unix: Print unhandled exception to stderr, like CPython does. --- unix/main.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/unix/main.c b/unix/main.c index 9794f60836..50b6c1e0bb 100644 --- a/unix/main.c +++ b/unix/main.c @@ -73,6 +73,13 @@ STATIC void sighandler(int signum) { } #endif +STATIC void stderr_print_strn(void *env, const char *str, mp_uint_t len) { + (void)env; + fwrite(str, len, 1, stderr); +} + +const mp_print_t mp_stderr_print = {NULL, stderr_print_strn}; + #define FORCED_EXIT (0x100) // If exc is SystemExit, return value where FORCED_EXIT bit set, // and lower 8 bits are SystemExit value. For all other exceptions, @@ -90,7 +97,7 @@ STATIC int handle_uncaught_exception(mp_obj_t exc) { } // Report all other exceptions - mp_obj_print_exception(&mp_plat_print, exc); + mp_obj_print_exception(&mp_stderr_print, exc); return 1; }