mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Improve TracePoint docs.
* Mention new :script_compiled event; * Deduplicate __enable/enable methods; * Document target: and target_line: arguments. [Bug #15484][ruby-core:90801] Co-authored-by: zverok <zverok.offline@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
46968fab0a
commit
b55586902d
2 changed files with 62 additions and 37 deletions
57
prelude.rb
57
prelude.rb
|
@ -133,6 +133,63 @@ class IO
|
|||
end
|
||||
|
||||
class TracePoint
|
||||
# call-seq:
|
||||
# trace.enable(target: nil, target_line: nil) -> true or false
|
||||
# trace.enable(target: nil, target_line: nil) { block } -> obj
|
||||
#
|
||||
# Activates the trace
|
||||
#
|
||||
# Return +true+ if trace was enabled.
|
||||
# Return +false+ if trace was disabled.
|
||||
#
|
||||
# trace.enabled? #=> false
|
||||
# trace.enable #=> false (previous state)
|
||||
# # trace is enabled
|
||||
# trace.enabled? #=> true
|
||||
# trace.enable #=> true (previous state)
|
||||
# # trace is still enabled
|
||||
#
|
||||
# If a block is given, the trace will only be enabled within the scope of the
|
||||
# block.
|
||||
#
|
||||
# trace.enabled?
|
||||
# #=> false
|
||||
#
|
||||
# trace.enable do
|
||||
# trace.enabled?
|
||||
# # only enabled for this block
|
||||
# end
|
||||
#
|
||||
# trace.enabled?
|
||||
# #=> false
|
||||
#
|
||||
# <i>target</i> and <i>target_line</i> parameters are used to limit tracing
|
||||
# only to specified code objects. <i>target</i> should be a code object for
|
||||
# which RubyVM::InstructionSequence.of will return instruction sequence.
|
||||
#
|
||||
# t = TracePoint.new(:line) { |tp| p tp }
|
||||
#
|
||||
# def m1
|
||||
# p 1
|
||||
# end
|
||||
#
|
||||
# def m2
|
||||
# p 2
|
||||
# end
|
||||
#
|
||||
# t.enable(target: method(:m1))
|
||||
#
|
||||
# m1
|
||||
# # prints #<TracePoint:line@test.rb:5 in `m1'>
|
||||
# m2
|
||||
# # prints nothing
|
||||
#
|
||||
#
|
||||
# Note: You cannot access event hooks within the +enable+ block.
|
||||
#
|
||||
# trace.enable { p tp.lineno }
|
||||
# #=> RuntimeError: access from outside
|
||||
#
|
||||
def enable target: nil, target_line: nil, target_thread: nil, &blk
|
||||
self.__enable target, target_line, target_thread, &blk
|
||||
end
|
||||
|
|
42
vm_trace.c
42
vm_trace.c
|
@ -1058,7 +1058,8 @@ tracepoint_attr_path(VALUE tpval)
|
|||
}
|
||||
|
||||
/*
|
||||
* Return the parameters of the method or block that the current hook belongs to
|
||||
* Return the parameters definition of the method or block that the
|
||||
* current hook belongs to. Format is the same as for Method#parameters
|
||||
*/
|
||||
static VALUE
|
||||
tracepoint_attr_parameters(VALUE tpval)
|
||||
|
@ -1361,42 +1362,8 @@ rb_hook_list_remove_tracepoint(rb_hook_list_t *list, VALUE tpval)
|
|||
list->events = events;
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* trace.enable -> true or false
|
||||
* trace.enable { block } -> obj
|
||||
*
|
||||
* Activates the trace
|
||||
*
|
||||
* Return true if trace was enabled.
|
||||
* Return false if trace was disabled.
|
||||
*
|
||||
* trace.enabled? #=> false
|
||||
* trace.enable #=> false (previous state)
|
||||
* # trace is enabled
|
||||
* trace.enabled? #=> true
|
||||
* trace.enable #=> true (previous state)
|
||||
* # trace is still enabled
|
||||
*
|
||||
* If a block is given, the trace will only be enabled within the scope of the
|
||||
* block.
|
||||
*
|
||||
* trace.enabled?
|
||||
* #=> false
|
||||
*
|
||||
* trace.enable do
|
||||
* trace.enabled?
|
||||
* # only enabled for this block
|
||||
* end
|
||||
*
|
||||
* trace.enabled?
|
||||
* #=> false
|
||||
*
|
||||
* Note: You cannot access event hooks within the block.
|
||||
*
|
||||
* trace.enable { p tp.lineno }
|
||||
* #=> RuntimeError: access from outside
|
||||
*
|
||||
/* :nodoc:
|
||||
* Docs for the TracePointe#enable are in prelude.rb
|
||||
*/
|
||||
static VALUE
|
||||
tracepoint_enable_m(VALUE tpval, VALUE target, VALUE target_line, VALUE target_thread)
|
||||
|
@ -1792,6 +1759,7 @@ Init_vm_trace(void)
|
|||
* +:thread_begin+:: event hook at thread beginning
|
||||
* +:thread_end+:: event hook at thread ending
|
||||
* +:fiber_switch+:: event hook at fiber switch
|
||||
* +:script_compiled+:: new Ruby code compiled (with +eval+, +load+ or +require+)
|
||||
*
|
||||
*/
|
||||
rb_cTracePoint = rb_define_class("TracePoint", rb_cObject);
|
||||
|
|
Loading…
Add table
Reference in a new issue