class DEBUGGER__::Tracer
Attributes
key[R]
type[R]
Public Class Methods
new(ui, pattern: nil, into: nil)
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 19 def initialize ui, pattern: nil, into: nil if /\ADEBUGGER__::(([A-Z][a-z]+?)[A-Z][a-z]+)/ =~ self.class.name @name = $1 @type = $2.downcase end setup if pattern @pattern = Regexp.compile(pattern) else @pattern = nil end if @into = into @output = File.open(into, 'w') @output.puts "PID:#{Process.pid} #{self}" else @output = ui end @key = [@type, @pattern, @into].freeze enable end
Public Instance Methods
colorize(str, color)
click to toggle source
Calls superclass method
DEBUGGER__::Color#colorize
# File debug-1.8.0/lib/debug/tracer.rb, line 8 def colorize(str, color) # don't colorize trace sent into a file if @into str else super end end
description()
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 61 def description nil end
disable()
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 53 def disable @tracer.disable end
enable()
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 49 def enable @tracer.enable end
enabled?()
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 57 def enabled? @tracer.enabled? end
header(depth)
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 45 def header depth "DEBUGGER (trace/#{@type}) \#th:#{Thread.current.instance_variable_get(:@__thread_client_id)} \#depth:#{'%-2d'%depth}" end
minfo(tp)
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 92 def minfo tp return "block{}" if tp.event == :b_call klass = tp.defined_class if klass.singleton_class? "#{tp.self}.#{tp.method_id}" else "#{klass}\##{tp.method_id}" end end
out(tp, msg = nil, depth = caller.size - 1)
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 80 def out tp, msg = nil, depth = caller.size - 1 location_str = colorize("#{FrameInfo.pretty_path(tp.path)}:#{tp.lineno}", [:GREEN]) buff = "#{header(depth)}#{msg} at #{location_str}" if false # TODO: Ractor.main? ThreadClient.current.on_trace self.object_id, buff else @output.puts buff @output.flush end end
skip?(tp)
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 72 def skip? tp ThreadClient.current.management? || skip_path?(tp.path) || skip_with_pattern?(tp) end
skip_with_pattern?(tp)
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 76 def skip_with_pattern?(tp) @pattern && !tp.path.match?(@pattern) end
to_s()
click to toggle source
# File debug-1.8.0/lib/debug/tracer.rb, line 65 def to_s s = "#{@name}#{description} (#{@tracer.enabled? ? 'enabled' : 'disabled'})" s += " with pattern #{@pattern.inspect}" if @pattern s += " into: #{@into}" if @into s end