当我在Rails中使用Byebug设置断点时,我有时希望它完成执行,但github上的指南说使用exit
也退出Pry。如果断点处于循环中,重复键入continue
可能会很烦人。
无论如何在没有退出Rails控制台的情况下停止byebug?
答案 0 :(得分:19)
在Rails控制台或Rails'下运行byebug
时服务器我通常只通过按 Ctrl + D 来退出。
如果你在Rails'然后,Byebug将在下次在代码中的byebug
语句中点击时停止并调试。但它在Rails控制台中运行良好。
答案 1 :(得分:2)
这不是最优雅的解决方案,但到目前为止它对我有用。
如果您的rails应用程序中有一个基本控制器,您可以添加一个访问器来保存一个变量,说明您是否要进行调试:
import {MockFooBar} from "./mockFooBar";
kernel.bind(new TypeBinding<FooBarInterface>("FooBarInterface", MockFooBar));
然后添加/修改初始化程序以在每个请求上将变量设置为true(或者每次为该对象创建实例时):
attr_accessor :debugging
最后,总是使用带有条件的byebug调用,只要你想要这种行为:
def initialize
@debugging=true
super
end
然后当您在IRB控制台并且想要退出调试器但继续执行代码时,您只需设置变量:
byebug if debugging
你甚至可以将它封装在帮助器中或做一些OOP魔术,但这是一个很好的起点。好的一点是,如果您重复请求,您将再次获得标准行为,除非您再次将变量设置为@debugging=false; finish
。
答案 2 :(得分:1)
在控制台中键入finish
会退出byebug,而不关闭pry / rails控制台/ rails服务器。
Ctrl + D 也可以。
答案 3 :(得分:0)
转到您的代码并删除byebug
并保存,然后在buybug终端中输入continue
,然后按Enter。
Tadaaa,您的应用程序将继续运行,并且您将在不关闭应用程序的情况下退出byebug。
答案 4 :(得分:0)
(byebug) quit
Really quit? (y/n) y
user ~
到目前为止,唯一对我来说没有问题的快速工作的
答案 5 :(得分:0)
abort
应该中止执行并将您带回到服务器或控制台。
如果您已经在调试器中使用了一段时间,则服务器可能开始运行得慢得多。如果是这种情况,请使用exit
退出byebug和服务器,然后重新启动仍然是更好的选择。
答案 6 :(得分:0)
试试 continue
或 finish
来源:https://edgeguides.rubyonrails.org/debugging_rails_applications.html#resuming-execution
答案 7 :(得分:0)
如果您想退出循环,请尝试 skip
。
只要与当前断点不同,它就会一直运行到下一个断点。
然后,一旦您退出循环,您就可以continue
。
答案 8 :(得分:-1)
从您的代码中删除&#34;调试器并输入&#34;完成&#34;在控制台