让Byebug完成执行而不退出Pry
当我在Rails中使用Byebug设置断点时,我有时希望它完成执行,但github上的指南说使用exit
也退出Pry。 如果断点处于循环中,重复键入continue
可能会很烦人。
无论如何在没有退出Rails控制台的情况下停止byebug?
当在Rails控制台或Rails服务器下运行byebug
,我通常只能通过按Ctrl + D来退出。
使用这种方法的方法是,如果你在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也有效。
从代码中删除“调试器”并在控制台中键入“finish”