summaryrefslogtreecommitdiff
path: root/vm_backtrace.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-15 15:58:45 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-15 18:29:35 +0900
commit4f47d655e357a7f09943f199969b437a25665ed2 (patch)
tree92ddf8438c2e63937b2a0e9af6794313aa8335ce /vm_backtrace.c
parent522b25668979892b10c71109a2520b300d57cb8c (diff)
Added Thread::Backtrace.limit [Feature #17479]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4187
Diffstat (limited to 'vm_backtrace.c')
-rw-r--r--vm_backtrace.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/vm_backtrace.c b/vm_backtrace.c
index f2cc21294c..4f1d14af31 100644
--- a/vm_backtrace.c
+++ b/vm_backtrace.c
@@ -11,6 +11,7 @@
#include "eval_intern.h"
#include "internal.h"
+#include "internal/error.h"
#include "internal/vm.h"
#include "iseq.h"
#include "ruby/debug.h"
@@ -839,6 +840,12 @@ backtrace_load_data(VALUE self, VALUE str)
return self;
}
+static VALUE
+backtrace_limit(VALUE self)
+{
+ return LONG2NUM(rb_backtrace_length_limit);
+}
+
VALUE
rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n)
{
@@ -1201,6 +1208,7 @@ Init_vm_backtrace(void)
rb_define_alloc_func(rb_cBacktrace, backtrace_alloc);
rb_undef_method(CLASS_OF(rb_cBacktrace), "new");
rb_marshal_define_compat(rb_cBacktrace, rb_cArray, backtrace_dump_data, backtrace_load_data);
+ rb_define_singleton_method(rb_cBacktrace, "limit", backtrace_limit, 0);
/*
* An object representation of a stack frame, initialized by