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

ari*_*fun 10 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"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

小智 23

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

见所附截图,如果你在苦苦寻找"显示控制台提示" 在这里输入图像描述

  • 谢谢!有用.我想这是一个rubymine bug. (2认同)