让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”

Interesting Posts