3

从错误回溯$!.backtrace中,您可以提取每个步骤的方法名称。我想进一步提取每个方法调用的接收者。我确信有办法做到这一点,因为我看到了具有此功能的宝石。

上面提到的 gem 似乎正在使用Kernel.set_trace_func,并记录binding信息。但是对所有方法调用执行此操作会显着减慢程序的运行速度。如何有选择地记录binding与导致错误的调用堆栈相关的信息?

4

1 回答 1

1

据我所知,binding除了跟踪执行之外,没有办法在引发异常后获取信息。

AC 扩展可能可以访问异常对象中可用的信息(请参阅https://github.com/ruby/ruby/blob/trunk/error.c#L552)。

你在这里很不走运......

于 2011-11-18T09:58:21.107 回答