2011-11-12 33 views
5

这是一个长期存在的挫折感,但也许有一些我错过了。如果我正在调试中,并且我想退出调试器并返回到IRB或Rails控制台,那么“quit”将不起作用,因为它将退出IRB。 “完成”似乎也具有与继续相同的效果。使用“删除”删除断点,然后尝试“继续”或“完成”不起作用。如何退出调试器而不退出IRB会话?

任何想法?

回答

2

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

基本上,它归结为一点点的想法,你设置你的断点。

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

2

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

eval return 

已经从目前的功能评估return语句的净效应。这有时可用,取决于调用堆栈的外观。

现在,虽然这并没有消除当前的断点....如果你只是想控制回来,这将在大多数情况下,这取决于你的代码的结构。

建立在你的代码调试条目时,也是有用的做到这一点:

byebug unless $continue 

所以,如果一切都在调试会话失败,你总是可以运行

$continue = true 
c 

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