inf:ruby:tracepoint
TracePoint
Najprostszy przykład wykorzystania:
2.0.0p353 :001 > trace = TracePoint.new(:raise) {|tp| p [tp.lineno, tp.event, tp.raised_exception]} => #<TracePoint:disabled> 2.0.0p353 :002 > trace.enable => false 2.0.0p353 :003 > 0 / 0 [3, :raise, #<ZeroDivisionError: divided by 0>] [86, :raise, #<ZeroDivisionError: divided by 0>] ZeroDivisionError: divided by 0 from (irb):3:in `/' from (irb):3 from /home/sqbell/.rvm/rubies/ruby-2.0.0-p353/bin/irb:12:in `<main>'
Zdarzenia
TracePoint umożliwia podpięcie się do kilku predefiniowanych zdarzeń.
:class- podpięcie się do definicji klasy lub modułu,:end- koniec definicji klasy lub modułu,:call- wywołanie metody w Rubym,:return- zwrócenie wartości z metody w Rubym,:c_call- wywołanie metody w CRubym,:c_return- zwrócenie wartości z metody w CRubym,:exception- rzucenie wyjątku,:b_call- wywołanie bloku,:b_return- zwrócenie wartości z bloku,:thread_begin-:thread_end-
inf/ruby/tracepoint.txt · Last modified: 2021/02/16 09:56 by 127.0.0.1
