【发布时间】:2013-04-07 22:29:47
【问题描述】:
使用这个最小的 ruby 代码:
require 'debug'
puts
在一个名为的文件中,例如脚本.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 上都尝试过,并且行为相同)
我知道“调试器”和“撬”,但它们服务于不同的用例:
我已经习惯了其他带有内置调试模块的脚本语言,它可以让我在代码中的任何位置放置一条语句,以将我放入调试 shell、检查代码、变量等等......优势内置它的原因是它随处可用,无需为它设置环境,甚至当我使用不是我自己的机器时
我显然可以通过始终使用 -rdebug 调用解释器并手动设置断点来解决此问题,但我发现这比替代方法更有效
【问题讨论】: