我在Rails应用程序中使用了撬。我设置了绑定。窥探我的模型中的一个循环,尝试调试一个问题。例如:
(1..100).each do |i|
binding.pry
puts i
end
当我输入quit时,它会进入下一个迭代并再次停止。是否有一种方法可以退出循环,这样我就不必键入退出100次了?
目前我知道如何摆脱它的唯一方法是使用CTRL+C并重新启动应用程序。
我在Rails应用程序中使用了撬。我设置了绑定。窥探我的模型中的一个循环,尝试调试一个问题。例如:
(1..100).each do |i|
binding.pry
puts i
end
当我输入quit时,它会进入下一个迭代并再次停止。是否有一种方法可以退出循环,这样我就不必键入退出100次了?
目前我知道如何摆脱它的唯一方法是使用CTRL+C并重新启动应用程序。
当前回答
三个感叹(!!)就可以了。
其他回答
一个绑定。pry语句与GDB中的断点完全相同。在GDB中这样的断点也会被击中100次。
如果你只想要绑定。在循环的第一次迭代中,要命中一次Pry,然后在绑定上使用条件。像这样撬:
(1..100).each do |i|
binding.pry if i == 1
puts i
end
然后只需输入exit退出当前会话。
使用gem pry-moves,你可以使用f (finish命令)跳出循环
例子:
42: def test
43: 3.times do |i|
=> 44: binding.pry
45: puts i
46: end
47: puts :finish
48: end
[1] pry(main)> f
0
1
2
Frame: 0/1 method
From: playground/sand.rb:47 main
42: def test
43: 3.times do |i|
44: binding.pry
45: puts i
46: end
=> 47: puts :finish
48: end
要无条件退出priy,请键入
exit-program
编辑自@Nick的评论:也适用:
!!!
三个感叹(!!)就可以了。
要退出所有内容,使用:
exit!
这应该忽略所有正在进行的绑定。