set_trace_func(p1) public

Establishes proc as the handler for tracing, or disables tracing if the parameter is nil.

Note: this method is obsolete, please use TracePoint instead.

proc takes up to six parameters:

  • an event name

  • a filename

  • a line number

  • an object id

  • a binding

  • the name of a class

proc is invoked whenever an event occurs.

Events are:

c-call

call a C-language routine

c-return

return from a C-language routine

call

call a Ruby method

class

start a class or module definition),

end

finish a class or module definition),

line

execute code on a new line

raise

raise an exception

return

return from a Ruby method

Tracing is disabled within the context of proc.

  class Test
  def test
    a = 1
    b = 2
  end
  end

  set_trace_func proc { |event, file, line, id, binding, classname|
     printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
  }
  t = Test.new
  t.test

    line prog.rb:11               false
  c-call prog.rb:11        new    Class
  c-call prog.rb:11 initialize   Object
c-return prog.rb:11 initialize   Object
c-return prog.rb:11        new    Class
    line prog.rb:12               false
    call prog.rb:2        test     Test
    line prog.rb:3        test     Test
    line prog.rb:4        test     Test
  return prog.rb:4        test     Test
Show source
Register or log in to add new notes.