代码之家  ›  专栏  ›  技术社区  ›  Achyut Rastogi

给定绑定,确定rails方法返回什么?

  •  -3
  • Achyut Rastogi  · 技术社区  · 7 年前

    set_trace_func proc { |event, file, line, id, binding, classname|
      printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
    }
    

    如何从这个绑定中确定函数将返回什么?我知道如何访问变量、参数等,但不知道如何获取返回值,还有更好的工具吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Stefan    7 年前

    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