【发布时间】:2009-10-05 22:50:05
【问题描述】:
所以我从我的应用程序中得到了一个异常日志。我在该日志中有一个调用堆栈、请求参数和所有其他常见的东西。这是一个罕见的例外,日志中的信息不包含我需要解决/复制问题的所有详细信息。
我想知道是否有某种方法(宝石?)在发生异常时获取 Rails 应用程序状态的完整转储。包括来自控制器方法的所有实例和局部变量值。我猜整个 Ruby 对象空间的转储可能需要一分钟左右,但在这种情况下我不关心磁盘和 cpu 资源。
【问题讨论】:
所以我从我的应用程序中得到了一个异常日志。我在该日志中有一个调用堆栈、请求参数和所有其他常见的东西。这是一个罕见的例外,日志中的信息不包含我需要解决/复制问题的所有详细信息。
我想知道是否有某种方法(宝石?)在发生异常时获取 Rails 应用程序状态的完整转储。包括来自控制器方法的所有实例和局部变量值。我猜整个 Ruby 对象空间的转储可能需要一分钟左右,但在这种情况下我不关心磁盘和 cpu 资源。
【问题讨论】:
我不这么认为,我尝试做类似事情的方法是在我需要更多信息的变量上使用 logger.error。
【讨论】:
如果可能,尝试使用 ruby-debug (instructions here) 运行它也不错。您需要做的就是在触发错误之前插入对debugger 的调用,或者将其粘贴在救援子句中。
【讨论】:
我不知道有什么方法可以获取应用程序状态。
我偶尔会做的一件事是安装netbeans,它有一个图形调试器。您可以将鼠标悬停在变量上以查看它们的值,轻松遍历堆栈,还可以让异常触发调试器,而不是断点。
【讨论】: