summaryrefslogtreecommitdiffhomepage
path: root/src/error.c
diff options
context:
space:
mode:
authorwanabe <[email protected]>2013-08-25 01:16:31 +0900
committerwanabe <[email protected]>2013-08-25 01:18:01 +0900
commit7007ce7ce0aa4b18fac346bcbf5f9f73c50039ea (patch)
tree51575edd91a5b1400f1de3a658b9ae6dd3949130 /src/error.c
parentaa099f7f7d1f8c61db936fb7c39a3c734175af16 (diff)
downloadmruby-7007ce7ce0aa4b18fac346bcbf5f9f73c50039ea.tar.gz
mruby-7007ce7ce0aa4b18fac346bcbf5f9f73c50039ea.zip
add Exception#backtrace
Diffstat (limited to 'src/error.c')
-rw-r--r--src/error.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/error.c b/src/error.c
index 98b49ad82..03f587a38 100644
--- a/src/error.c
+++ b/src/error.c
@@ -435,6 +435,8 @@ mrb_sys_fail(mrb_state *mrb, const char *mesg)
}
}
+mrb_value mrb_get_backtrace(mrb_state*, mrb_value);
+
void
mrb_init_exception(mrb_state *mrb)
{
@@ -448,6 +450,7 @@ mrb_init_exception(mrb_state *mrb)
mrb_define_method(mrb, e, "to_s", exc_to_s, MRB_ARGS_NONE());
mrb_define_method(mrb, e, "message", exc_message, MRB_ARGS_NONE());
mrb_define_method(mrb, e, "inspect", exc_inspect, MRB_ARGS_NONE());
+ mrb_define_method(mrb, e, "backtrace", mrb_get_backtrace, MRB_ARGS_NONE());
mrb->eStandardError_class = mrb_define_class(mrb, "StandardError", mrb->eException_class); /* 15.2.23 */
mrb_define_class(mrb, "RuntimeError", mrb->eStandardError_class); /* 15.2.28 */