From cff2b2b66626e5aee5598f98b1f855249ca2f282 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 8 Oct 2013 12:08:20 +0000 Subject: * vm_backtrace.c, include/ruby/debug.h: add new APIs * VALUE rb_profile_frame_method_name(VALUE frame) * VALUE rb_profile_frame_qualified_method_name(VALUE frame) * iseq.c (rb_iseq_klass), internal.h: add new internal function rb_iseq_method_name(). * ext/-test-/debug/profile_frames.c (profile_frames), test/-ext-/debug/test_profile_frames.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- iseq.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'iseq.c') diff --git a/iseq.c b/iseq.c index a06a0a915f..8545e6c881 100644 --- a/iseq.c +++ b/iseq.c @@ -959,6 +959,20 @@ rb_iseq_klass(VALUE self) return iseq->local_iseq->klass; } +VALUE +rb_iseq_method_name(VALUE self) +{ + rb_iseq_t *iseq, *local_iseq; + GetISeqPtr(self, iseq); + local_iseq = iseq->local_iseq; + if (local_iseq->type == ISEQ_TYPE_METHOD) { + return local_iseq->location.base_label; + } + else { + return Qnil; + } +} + static VALUE iseq_data_to_ary(rb_iseq_t *iseq); -- cgit v1.2.3