====== TracePoint ====== Najprostszy przykład wykorzystania: 2.0.0p353 :001 > trace = TracePoint.new(:raise) {|tp| p [tp.lineno, tp.event, tp.raised_exception]} => # 2.0.0p353 :002 > trace.enable => false 2.0.0p353 :003 > 0 / 0 [3, :raise, #] [86, :raise, #] 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 `
' ===== 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'' -