【问题标题】:Use better_errors as debugger?使用 better_errors 作为调试器?
【发布时间】:2013-07-13 00:17:42
【问题描述】:
是否可以将优秀的better_errors gem 用作调试器?
换句话说,我可以添加代码以使其进入 better_errors “错误”页面,四处寻找,检查,然后继续吗?
我可以添加虚假错误或raise,但我无法“继续”。
是的,我知道我可以使用调试器或 pry,但是 better_errors 接口更出色,包含各种请求和堆栈信息,我可以在打开 2 个窗口而不是 3 个窗口的情况下进行编码/调试。
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
debugging
better-errors-gem
【解决方案1】:
或者或者……如果你真的需要的话。
只需输入:raise 'something' 并在需要的任何地方引发任意错误,然后您的 REPL 就在那里。
【解决方案2】:
不,它是围绕错误页面构建的。它所拍摄的调用堆栈快照来自最后一个异常。
【解决方案3】:
查看与better_errors 结合使用的binding_of_caller gem。花 8 分钟观看RailsCasts #402 的演示,同时使用这两种宝石。它不会让您调试步进或观察点设置,但它肯定允许您检查和查看任何堆栈帧中的局部变量和实例变量(每个都有自己的 REPL)。
来自README:
使用 binding_of_caller 我们可以从调用的更高层获取绑定
在该上下文中堆叠和评估代码。允许访问绑定
任意远在调用堆栈上,不仅限于立即
来电者。
不过,请务必仅在您的开发环境中使用它。您的 Gemfile 中应该有以下内容。
group :development do
gem 'better_errors'
gem 'binding_of_caller'
end