【发布时间】:2010-08-26 15:22:17
【问题描述】:
使用 MRI 1.9
当引发导致打印回溯的异常时,如果回溯显示接收者和方法参数的值以及方法名称,通常会非常容易调试。有没有办法做到这一点?
考虑以下情况,例如将 nil 传递到库代码中出乎意料的深度,或者两个字符串具有不兼容的编码并且某些例程试图将它们连接起来
【问题讨论】:
使用 MRI 1.9
当引发导致打印回溯的异常时,如果回溯显示接收者和方法参数的值以及方法名称,通常会非常容易调试。有没有办法做到这一点?
考虑以下情况,例如将 nil 传递到库代码中出乎意料的深度,或者两个字符串具有不兼容的编码并且某些例程试图将它们连接起来
【问题讨论】:
您可以使用 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”【讨论】: