set_trace_func.
set_trace_func tiene la sintáxis:
set_trace_func( proc ) → proc set_trace_func( nil ) → nilEstablece
proc como un manejador para crear una traza
de la ejecución. Si es nil desactivamos la traza.
El proc toma 6 parámetros:
proc es invocado cada vez que ocurre un evento.
Los eventos son:
proc.
~/rubytesting/programmingRuby/src_of_programming_ruby_by_dave_thomas$ cat -n ex0682.rb
1 class Test
2 def initialize
3 puts "In initialize"
4 end
5 def test
6 a = 1
7 b = 2
8 end
9 end
10
11 set_trace_func proc {|event, file, line, id, binding, classname|
12 printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
13 }
14 t = Test.new
15 t.test
~/rubytesting/programmingRuby/src_of_programming_ruby_by_dave_thomas$ ruby ex0682.rb
line ex0682.rb:14 false
c-call ex0682.rb:14 new Class
call ex0682.rb:2 initialize Test
line ex0682.rb:3 initialize Test
c-call ex0682.rb:3 puts Kernel
c-call ex0682.rb:3 write IO
In initialize
c-return ex0682.rb:3 write IO
c-call ex0682.rb:3 write IO
c-return ex0682.rb:3 write IO
c-return ex0682.rb:3 puts Kernel
return ex0682.rb:3 initialize Test
c-return ex0682.rb:14 new Class
line ex0682.rb:15 false
call ex0682.rb:5 test Test
line ex0682.rb:6 test Test
line ex0682.rb:7 test Test
return ex0682.rb:7 test Test
Otro método que puede ser usado para obtener mas información sobre la traza es trace_var
~/rubytesting/programmingRuby/src_of_programming_ruby_by_dave_thomas$ cat -n trace_var.rb
1 trace_var :$_, proc {|v| puts "$_ is now '#{v}'" }
2 $_ = "hello"
3 $_ = ' there'
~/rubytesting/programmingRuby/src_of_programming_ruby_by_dave_thomas$ ruby trace_var.rb $_ is now 'hello' $_ is now ' there'
Casiano Rodriguez León 2015-01-07