19

当我在 Rails 中使用 Byebug 设置断点时,有时我希望它完成执行,但 github 上的指南说使用exit它也会退出 Pry。continue如果断点在循环中,重复 键入可能会很烦人。

无论如何在不退出 Rails 控制台的情况下停止 byebug 吗?

4

10 回答 10

29

在 Rails 控制台或 Rails 的服务器下运行时,我通常只通过点击+byebug退出 byebug 。CtrlD

这种方法的问题是,如果您在 Rails 的服务器中执行此操作,那么 Byebug 将不会停止并在下次遇到byebug代码中的任何语句时进行调试。但它在 Rails 控制台中完美运行。

于 2016-02-23T16:03:07.967 回答
6

试试!!!。它适用于pry gem,但不确定它是否适用于 byebug。

于 2016-02-21T15:50:26.640 回答
2

好吧,这不是最优雅的解决方案,但到目前为止它对我有用。

如果您的 Rails 应用程序中有一个基本控制器,您可以添加一个访问器来保存一个变量,说明您是否希望进行调试:

attr_accessor :debugging

然后添加/修改初始化程序以在每个请求(或每次为该对象创建实例时)将变量设置为 true:

def initialize
  @debugging=true
  super
end

最后,在任何你想要这种行为的地方,始终使用带有条件的 byebug 调用:

byebug if debugging

然后,当您在 IRB 控制台并且想要退出调试器但继续执行您刚刚设置变量的代码时:

@debugging=false; finish

您甚至可以将其封装在一个助手中或做一些 OOP 魔术,但这是一个很好的起点。好消息是,如果您重复请求,除非您再次将变量设置为,否则您将再次获得标准行为false

于 2016-02-22T04:25:44.463 回答
1

在控制台中输入finish退出 byebug,而不关闭 pry/rails 控制台/rails 服务器。

Ctrl + D也可以。

于 2018-09-15T16:54:08.383 回答
0

abort应该中止执行并将您带回您的服务器或控制台。

如果您已经在调试器中使用了一段时间,服务器可能会开始运行得更慢。如果是这种情况,使用exit退出 byebug 和服务器,然后重新启动可能仍然是更好的选择。

于 2020-09-09T23:20:33.827 回答
0
(byebug) quit
Really quit? (y/n) y
user ~

到目前为止,唯一一个对我来说运行迅速且没有问题的。

于 2020-08-18T13:29:34.913 回答
0

尝试continuefinish

来源:https ://edgeguides.rubyonrails.org/debugging_rails_applications.html#resuming-execution

于 2021-01-08T02:44:17.650 回答
0

如果要退出循环,请尝试skip.

只要它与当前断点不同,它将一直运行到下一个断点。

然后,一旦你脱离了循环,你就可以continue

于 2021-03-13T08:16:51.973 回答
0

转到您的代码并删除 byebug并保存,然后在buybug终端中写入,continue然后按Enter。

Tadaaa 您的应用程序将继续运行,您将退出 byebug all 而无需关闭您的应用程序。

于 2020-05-25T13:09:02.350 回答
-1

从代码中删除“调试器”并在控制台中输入“完成”

于 2015-06-07T10:12:52.193 回答