summaryrefslogtreecommitdiffhomepage
path: root/src/backtrace.c
diff options
context:
space:
mode:
authorcremno <[email protected]>2014-04-27 22:32:20 +0200
committercremno <[email protected]>2014-04-29 07:05:30 +0200
commit01b76630b8f97b5da229e492df2e17bab57c3c44 (patch)
treefdca6cd22d0fa35ba5fda71e9222b947a3fc149d /src/backtrace.c
parent3464116fc15ffb1e09e8ed41ba5731b678e6c75f (diff)
downloadmruby-01b76630b8f97b5da229e492df2e17bab57c3c44.tar.gz
mruby-01b76630b8f97b5da229e492df2e17bab57c3c44.zip
fix disabled stdio (and remove trailing spaces)
Diffstat (limited to 'src/backtrace.c')
-rw-r--r--src/backtrace.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/backtrace.c b/src/backtrace.c
index e6a28d471..7768a3206 100644
--- a/src/backtrace.c
+++ b/src/backtrace.c
@@ -14,9 +14,10 @@
#include "mruby/debug.h"
#include "mruby/error.h"
+#ifdef ENABLE_STDIO
+
typedef void (*output_stream_func)(mrb_state*, void*, int, const char*, ...);
-#ifdef ENABLE_STDIO
static void
print_backtrace_i(mrb_state *mrb, void *stream, int level, const char *format, ...)
{
@@ -26,7 +27,7 @@ print_backtrace_i(mrb_state *mrb, void *stream, int level, const char *format, .
vfprintf((FILE*)stream, format, ap);
va_end(ap);
}
-#endif
+
#define MIN_BUFSIZE 127
@@ -142,14 +143,12 @@ exc_output_backtrace(mrb_state *mrb, struct RObject *exc, output_stream_func fun
function to retrieve backtrace information from the exception.
note that if you call method after the exception, call stack will be
overwritten. So invoke these functions just after detecting exceptions.
-*/
+*/
void
mrb_print_backtrace(mrb_state *mrb)
{
-#ifdef ENABLE_STDIO
exc_output_backtrace(mrb, mrb->exc, print_backtrace_i, (void*)stderr);
-#endif
}
mrb_value
@@ -177,3 +176,24 @@ mrb_get_backtrace(mrb_state *mrb)
return ary;
}
+
+#else
+
+void
+mrb_print_backtrace(mrb_state *mrb)
+{
+}
+
+mrb_value
+mrb_exc_backtrace(mrb_state *mrb, mrb_value self)
+{
+ return mrb_ary_new(mrb);
+}
+
+mrb_value
+mrb_get_backtrace(mrb_state *mrb)
+{
+ return mrb_ary_new(mrb);
+}
+
+#endif