【问题标题】:Is it possible to extract locals and their values from a stack trace in Ruby?是否可以从 Ruby 的堆栈跟踪中提取局部变量及其值?
【发布时间】:2016-02-10 08:41:06
【问题描述】:

我正在调查我的 Ruby 应用程序中的一个崩溃问题。我的日志中的堆栈跟踪信息不足,我无法重现该错误。当发生未处理的异常时,我需要在发生异常的帧中记录局部变量的值。

在 Ruby 中有没有办法做到这一点?

【问题讨论】:

  • 您无法重现错误与您有权访问(即可以重现)堆栈跟踪的暗示似乎是矛盾的。
  • @sawa 我从服务器日志中获得了堆栈跟踪。我无法重现该错误,因为它没有发生,而且据我所知不可能发生。我完全不知道错误是如何发生的。当/如果错误再次发生在生产中,除非我有更多信息,否则我仍然无法修复它。

标签: ruby ruby-2.1


【解决方案1】:

自己动手并不容易,但是有一个由 banisterfiend 编写的 gem binding_of_caller (gem) 使之成为可能。

【讨论】:

  • 我会认为你的回答意味着如果没有在生产环境中没有位置的黑魔法,它就无法完成......我将添加一些打印调用到崩溃发生了,希望下次崩溃时能提供足够的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 2021-11-19
  • 1970-01-01
  • 2011-03-16
  • 2016-02-19
相关资源
最近更新 更多