Binding.of_caller (cont'd) 5 tracer = lambda do |*args| 6 type, context = args[0], args[4] 7 if type == "return" 8 count += 1 9 if count == 2 10 set_trace_func(nil) 11 cc.call(eval("binding", context), nil) 12 end 13 elsif type != "line" 14 set_trace_func(nil) 15 cc.call(nil, lambda { raise(ArgumentError) }) 16 end 17 end