当我在 Rails 中使用 Byebug 设置断点时,有时我希望它完成执行,但 github 上的指南说使用exit
它也会退出 Pry。continue
如果断点在循环中,重复 键入可能会很烦人。
无论如何在不退出 Rails 控制台的情况下停止 byebug 吗?
当我在 Rails 中使用 Byebug 设置断点时,有时我希望它完成执行,但 github 上的指南说使用exit
它也会退出 Pry。continue
如果断点在循环中,重复 键入可能会很烦人。
无论如何在不退出 Rails 控制台的情况下停止 byebug 吗?
在 Rails 控制台或 Rails 的服务器下运行时,我通常只通过点击+byebug
退出 byebug 。CtrlD
这种方法的问题是,如果您在 Rails 的服务器中执行此操作,那么 Byebug 将不会停止并在下次遇到byebug
代码中的任何语句时进行调试。但它在 Rails 控制台中完美运行。
试试!!!
。它适用于pry gem,但不确定它是否适用于 byebug。
好吧,这不是最优雅的解决方案,但到目前为止它对我有用。
如果您的 Rails 应用程序中有一个基本控制器,您可以添加一个访问器来保存一个变量,说明您是否希望进行调试:
attr_accessor :debugging
然后添加/修改初始化程序以在每个请求(或每次为该对象创建实例时)将变量设置为 true:
def initialize
@debugging=true
super
end
最后,在任何你想要这种行为的地方,始终使用带有条件的 byebug 调用:
byebug if debugging
然后,当您在 IRB 控制台并且想要退出调试器但继续执行您刚刚设置变量的代码时:
@debugging=false; finish
您甚至可以将其封装在一个助手中或做一些 OOP 魔术,但这是一个很好的起点。好消息是,如果您重复请求,除非您再次将变量设置为,否则您将再次获得标准行为false
。
在控制台中输入finish
退出 byebug,而不关闭 pry/rails 控制台/rails 服务器。
Ctrl + D也可以。
abort
应该中止执行并将您带回您的服务器或控制台。
如果您已经在调试器中使用了一段时间,服务器可能会开始运行得更慢。如果是这种情况,使用exit
退出 byebug 和服务器,然后重新启动可能仍然是更好的选择。
(byebug) quit
Really quit? (y/n) y
user ~
到目前为止,唯一一个对我来说运行迅速且没有问题的。
尝试continue
或finish
来源:https ://edgeguides.rubyonrails.org/debugging_rails_applications.html#resuming-execution
如果要退出循环,请尝试skip
.
只要它与当前断点不同,它将一直运行到下一个断点。
然后,一旦你脱离了循环,你就可以continue
。
转到您的代码并删除 byebug
并保存,然后在buybug终端中写入,continue
然后按Enter。
Tadaaa 您的应用程序将继续运行,您将退出 byebug all 而无需关闭您的应用程序。
从代码中删除“调试器”并在控制台中输入“完成”