Рубин: не может читать из STDOUT после завершения STDIN - PullRequest
0 голосов
/ 22 мая 2019

В режиме Run или Debug я сначала записываю ввод в консоль, которая читается STDIN. Я прекращаю ввод с помощью CMD-D (не CTRL-D, см. Сочетания клавиш https://www.jetbrains.com/help/idea/debug-tool-window-console.html). Затем попытка распечатать что-либо в STDOUT выдает ошибку:

Traceback (most recent call last):
    1: from /path/to/my/script.rb:27:in `<main>'
/path/to/my/script:27:in `p': Input/output error @ io_writev - <STDOUT> (Errno::EIO)

Process finished with exit code 1

Я знаю, что в этот момент вы очарованы тем, как эта история может разворачиваться, так что вот оно. работает , если вы печатаете в STDERR.

#!/usr/bin/env ruby
ins = STDIN.read
puts ins # boom!
#!/usr/bin/env ruby
ins = "hi"
puts ins # hi
#!/usr/bin/env ruby
ins = STDIN.read
STDERR.puts ins # surprise!  STDERR works.

Запуск RubyMine 2019.1.1 RM-191.6707.59 (16 апреля 2019 г.) в macOS 10.14.4 ruby-2.6.3, а также попробовал 2.5.1.

В глубине сеанса отладки я вижу модуль ruby-debug-ide. Отладчик принял параметры (в случае, если они что-нибудь значат для любых разработчиков инструментов ruby):

#<OpenStruct frame_bind=false, host="0.0.0.0", load_mode=false, port=53540, stop=false, tracing=false, int_handler=false, dispatcher_port=53541, evaluation_timeout=10, trace_to_s=true, debugger_memory_limit=0, inspect_time_limit=100, rm_protocol_extensions=true, catchpoint_deleted_event=false, value_as_nested_element=false, attach_mode=false, cli_debug=false, key_value_mode=true>

1 Ответ

0 голосов
/ 22 мая 2019

Похоже, что консоль RubyMine не поддерживает это, пожалуйста, следуйте соответствующему запросу на трекере RubyMine: https://youtrack.jetbrains.com/issue/RUBY-24245

...