ruby 调试器不会在我在与执行开始时不同的文件中设置的断点处停止。例如,考虑这两个文件foo.rb:
# foo.rb
class Foo
def bar
puts "baz"
end
end
和main.rb:
# main.rb
require './foo'
Foo.new.bar
我开始使用ruby -r debug .\main.rb
. 现在,当我尝试使用 在另一个文件的特定行上设置断点时b ./foo.rb:4
,我收到消息Set breakpoint 1 at foo.rb:4,但是当 I 时cont
,程序执行到最后,并且调试器永远不会停止。但是,如果我在main.rb中的一行(例如b ./main.rb:3
)或方法(例如b Foo.bar
)中中断,则调试器会按预期停止。
为什么调试器不会在主文件以外的文件中的断点处停止?
更新:我已经在 Windows 7 和 OS X 10.8 上使用 Ruby 1.9.3 进行了尝试;它在这两种环境中都不起作用。
我也刚刚意识到调试器在脚本运行到结束后退出:我开始调试main.rb, use cont
,然后baz打印在控制台上,我又回到了 shell 中。这是预期的行为,还是调试器可能已经崩溃?