在不同文件中设置断点无效

时间:2012-09-04 12:53:35

标签: ruby debugging breakpoints

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在另一个文件中的特定行上设置断点时,我收到消息在foo.rb设置断点1:4 ,但是当我{{1程序执行到最后,调试器永远不会停止。但是,如果我在 main.rb 中的一行中断,例如cont或方法,例如b ./main.rb:3,调试器按预期停止。

为什么调试器不在主文件以外的文件中的断点处停止?

更新:我在Windows 7以及OS X 10.8上尝试过使用Ruby 1.9.3;它在两种环境中都不起作用。

我也刚刚意识到调试器在脚本运行到结束后退出:我开始调试 main.rb ,使用b Foo.bar,然后 baz 打印在控制台上,我正好回到了外壳中。这是预期的行为,还是调试器可能崩溃了?

1 个答案:

答案 0 :(得分:1)

哇,这很奇怪。不确定这是否有帮助,但也许你可以这样做。用next替换require,然后加载Foo

b Foo:bar

至少应该打破吧

相关问题