【发布时间】:2012-09-04 12:53:34
【问题描述】:
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,但是当我cont 时,程序执行到最后,调试器永远不会停止。但是,如果我在 main.rb 中换行,例如b ./main.rb:3,或方法,例如b Foo.bar,调试器按预期停止。
为什么调试器不会在主文件以外的文件中的断点处停止?
更新:我已经在 Windows 7 和 OS X 10.8 上使用 Ruby 1.9.3 进行了尝试;它在这两种环境中都不起作用。
我也刚刚意识到,脚本运行到最后调试器退出:我开始调试main.rb,使用cont,然后baz是打印在控制台上,我就回到了外壳中。这是预期的行为,还是调试器可能已经崩溃?
【问题讨论】:
-
您是否尝试过在 main:3 中设置断点(在 require 加载后),运行到该断点,然后设置第二个断点?
-
@AlexBrown 根据您的建议,我已经使用
next跳过了要求,然后在 foo.rb 和cont'd 中添加了断点 - 结果相同。 -
我现在使用 ruby 2.1.0 时遇到了同样的问题。你解决了吗?
-
还没有,它仍然存在于我的 ruby 安装中
标签: ruby debugging breakpoints