From ca127507492041f5375aa586343082c2ac2a584a Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 7 Jul 2014 21:42:43 -0400 Subject: [PATCH] show exception info --- main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 5eabf3d..ae3c408 100644 --- a/main.c +++ b/main.c @@ -9,7 +9,10 @@ static VALUE eval(const char * string) VALUE v = rb_eval_string_protect(string, &state); if (state != 0) { - fprintf(stderr, "rb_eval_string_protect() returned state %d!\n", state); +// fprintf(stderr, "rb_eval_string_protect() returned state %d!\n", state); + VALUE e = rb_errinfo(); + VALUE s = rb_funcall(e, rb_intern("message"), 0); + printf("%s\n", StringValueCStr(s)); rb_set_errinfo(Qnil); } return v; @@ -27,6 +30,7 @@ int main(int argc, char *argv[]) ruby_init_loadpath(); VALUE v = eval("3 + 8"); printf("v: %d\n", FIX2INT(v)); + eval("yoda"); eval("File.open('out.txt', 'w') {|fh| fh.puts 'hello!'}"); eval("puts 'Hello, World!'"); ruby_finalize();