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ń.