set_trace_func proc { |event, file, line, id, binding, classname| printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname }
如何从这个绑定中确定函数将返回什么?我知道如何访问变量、参数等,但不知道如何获取返回值,还有更好的工具吗?
set_trace_func 被取代 TracePoint 能够检查方法的 return_value :
set_trace_func
TracePoint
return_value
def foo 2 * 3 end TracePoint.trace(:return) do |tp| puts "`#{tp.method_id}' returned #{tp.return_value.inspect}" end foo
输出:
`foo' returned 6
:c_return 跟踪在C和 b_return
:c_return
b_return