如何在不退出IRB会话的情况下退出调试器?

时间:2011-11-12 18:02:18

标签: ruby-on-rails ruby irb

这是一个长期存在的挫折感,但也许有些东西我不知道了。如果我正在调试,我想退出调试器并返回到IRB或Rails控制台,“退出”将无法工作,因为它将退出IRB。 “完成”似乎与继续具有相同的效果。使用“删除”删除断点,然后尝试“继续”或“完成”不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

SO question有一些很好的建议。它专门处理循环内部的调试。一个很好的解决方案是在循环外部设置断点,然后从irb中将其设置在循环内并在需要时手动清除它。

基本上,只需要考虑一下你设置断点的地方。

除此之外,你似乎还没有其他任何事情可以做。

答案 1 :(得分:2)

至少在byebug,你可以这样做:

eval return

从当前函数评估return语句的结果是什么。这有时会起作用,具体取决于调用堆栈的外观。

现在虽然这并没有删除当前断点....如果你只想要控制回来,这在大多数情况下会这样做,具体取决于代码的结构。

在代码中创建调试条目时执行此操作也很有用:

byebug unless $continue

因此,如果调试会话中的所有其他操作都失败,您可以随时运行

$continue = true
c

现在这开启了一整套可能性。