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 TestOtro 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