diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-06-03 05:10:41 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-06-03 05:10:41 +0000 |
commit | cd0fec37281a72d402981894b764d27ab7d1fb39 () | |
tree | 7798f0f28cbf31b54fd44887585c878c35277a76 /vm_trace.c | |
parent | 25d1891899be492dc64bb6852741d4f112feba64 (diff) |
Add TracePoint#parameters
It can be used to get the parameters' information of method and block. There was no way to get block parameters. It was possible but ineffective to get method parameters via Method object: `tp.defined_class.method(tp.method_id).parameters` TracePoint#parameters allows us to get the information easily. [Feature #14694] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | vm_trace.c | 49 |
1 files changed, 49 insertions, 0 deletions
@@ -805,6 +805,45 @@ fill_id_and_klass(rb_trace_arg_t *trace_arg) } VALUE rb_tracearg_method_id(rb_trace_arg_t *trace_arg) { fill_id_and_klass(trace_arg); @@ -920,6 +959,15 @@ tracepoint_attr_path(VALUE tpval) } /* * Return the name at the definition of the method being called */ static VALUE @@ -1502,6 +1550,7 @@ Init_vm_trace(void) rb_define_method(rb_cTracePoint, "event", tracepoint_attr_event, 0); rb_define_method(rb_cTracePoint, "lineno", tracepoint_attr_lineno, 0); rb_define_method(rb_cTracePoint, "path", tracepoint_attr_path, 0); rb_define_method(rb_cTracePoint, "method_id", tracepoint_attr_method_id, 0); rb_define_method(rb_cTracePoint, "callee_id", tracepoint_attr_callee_id, 0); rb_define_method(rb_cTracePoint, "defined_class", tracepoint_attr_defined_class, 0); |