mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
use builtin for TracePoint.
Define TracePoint in trace_point.rb and use __builtin_ syntax.
This commit is contained in:
parent
46acd0075d
commit
e2a45cb984
Notes:
git
2019-11-08 09:10:08 +09:00
8 changed files with 527 additions and 438 deletions
63
prelude.rb
63
prelude.rb
|
@ -136,69 +136,6 @@ class IO
|
|||
end
|
||||
end
|
||||
|
||||
class TracePoint
|
||||
# call-seq:
|
||||
# trace.enable(target: nil, target_line: nil, target_thread: nil) -> true or false
|
||||
# trace.enable(target: nil, target_line: nil, target_thread: nil) { block } -> obj
|
||||
#
|
||||
# Activates the trace.
|
||||
#
|
||||
# Returns +true+ if trace was enabled.
|
||||
# Returns +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
|
||||
#
|
||||
# +target+, +target_line+ and +target_thread+ parameters are used to
|
||||
# limit tracing only to specified code objects. +target+ should be a
|
||||
# code object for which RubyVM::InstructionSequence.of will return
|
||||
# an 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
|
||||
end
|
||||
|
||||
class Binding
|
||||
# :nodoc:
|
||||
def irb
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue