Закодированный «require 'debug'» не может найти исходный файл
С этим минимальным рубиновым кодом:
require 'debug'
puts
в файле с именем, например, script.rb
если я запускаю это так:ruby -rdebug script.rb
а затем нажмитеl
в приглашении отладки я получаю список, как и ожидалось
если я вместо этого запускаю его как обычноruby script.rb
при нажатииl
Я получил:
(rdb:1) l
[-3, 6] in script.rb
No sourcefile available for script.rb
Сообщение об ошибке в лучшем случае вводит в заблуждение: рабочий каталог не изменился, и файл определенно все еще там!
Я не могу найти документацию по этому поведению (я пробовал и на jruby и на mri, и поведение такое же)
Я знаю о 'debugger' и 'pry', но они служат другому сценарию использования:
Я привык к другим языкам сценариев со встроенным модулем отладки, который позволяет мне помещать оператор в любое место кода, чтобы поместить меня в оболочку отладки, проверять код, переменные и тому подобное ... преимущество в том, что он встроен это доступно везде, без необходимости настраивать среду для этого, или даже когда я на машине, которая не моя
Очевидно, я мог бы обойти это, всегда вызывая переводчика с-rdebug
и вручную установить точку останова, но я считаю, что это больше работы, чем альтернатива