代码之家  ›  专栏  ›  技术社区  ›  telent

我可以让ruby在backtrace中显示方法参数值吗?

  •  1
  • telent  · 技术社区  · 15 年前

    使用MRI 1.9

    想一想这样的情况,比如在库代码中传递一个nil,这不是预期的,或者两个字符串有不兼容的编码,一些例程正在尝试连接它们

    1 回复  |  直到 15 年前
        1
  •  2
  •   rogerdpack    15 年前

    您可以使用backtracergem使用1.8.6。

    1.9有轻微的回调,所以还不兼容。如果需要的话,我也许能让它工作。

    您可以使用代理之类的工具,查看单个对象的参数:

    class A
      def go a, b
      end
    end
    
    class A2
    
      def initialize *args
        @delegate = A.new *args
      end
    
      def method_missing meth, *args
        p "got call to #{meth}", args.join(', ')
        @delegate.send(meth,*args)
      end
    
    end
    

    "in go2"
    "got call to go"
    "3, 4"
    
    推荐文章