Ruby调试器在STDIN.gets用户输入上失败

时间:2015-06-30 19:42:24

标签: ruby debugging rubymine

我相信你可以很容易地重现这个问题。 只需要一个新的RubyMine(7.1) - Mac或Windows版本,Ruby 2.2,创建简单的脚本:

puts "Hi, i'm gonna break your debugger :)"
user_input = gets
puts "Here should be breakpoint"

将断点放在第3行并运行Debug会话(RubyMine使用ruby-debug-ide gem)。

当您在RubyMine控制台窗口中输入内容以便脚本读入gets时 - 程序不会吃掉您的输入说:

  

无法执行语句:当前堆栈帧不可用。暂停   使用控制台解释器的过程

这里发生了什么以及如何调试这样的Ruby脚本?

1 个答案:

答案 0 :(得分:21)

这似乎是一个RubyMine的怪癖。如果您通过单击“显示控制台提示”来禁用控制台提示。调试窗格中的图标应该按预期开始工作

如果您在努力寻找“显示控制台提示”&{39; enter image description here

,请参阅随附的屏幕截图