Ruby 2.0 é preterido Kernel#set_trace_func
em favor da classe TracePoint, que tem uma ótima API orientada a objetos. Por exemplo, rastrear todas as chamadas C pode ser tão fácil quanto
trace = TracePoint.trace(:c_call) { |tp| [tp.lineno, tp.event] }
que é um atalho conveniente para
trace = TracePoint.new(:c_call) do |tp|
p [tp.lineno, tp.event]
end
trace.enable