1

使用 MRI 1.9

当引发导致打印回溯的异常时,如果回溯显示方法参数的接收者和值以及方法名称,通常会非常容易调试。有没有办法做到这一点?

考虑以下情况,例如将 nil 深入到库代码中,这不是预期的,或者两个字符串具有不兼容的编码并且某些例程试图将它们连接起来

4

1 回答 1

2

您可以使用 backtracer gem 使用 1.8.6。

不过,1.9 的回调略有损坏,因此尚不兼容。如果需要,我也许可以让它工作。

您可以使用委托之类的东西并查看单个对象的参数:

A级
  def 去 a, b
  结尾
结尾

A2级

  def 初始化 *args
    @delegate = A.new *args
  结尾

  def method_missing meth, *args
    p "接到#{meth}的电话", args.join(', ')
    @delegate.send(meth,*args)
  结尾

结尾

哪个输出

“在 go2 中”
“有电话要走”
“3、4”
于 2010-08-26T16:18:24.100 回答