2012-09-04 84 views
6

紅寶石調試器不在斷點我設置在不同的文件從在執行中開始制止例如,考慮這兩個文件,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的另一個文件中的特定行上設置斷點時,我收到消息將斷點1設置爲foo.rb:4,但是當I cont時,程序執行到結束,調試器永不停止。但是,如果我在main.rb,例如或者一種方法,例如, b Foo.bar,調試器按預期停止。

爲什麼調試器不在主文件以外的其他文件中的斷點處停止?

更新:我已經在Windows 7以及OS X 10.8上使用了Ruby 1.9.3;它在兩種環境中都不起作用。

我剛纔也意識到,腳本運行,直到結束後,調試器退出:我開始調試main.rb的,使用cont,然後巴茲印在控制檯上,我右後衛貝殼。這是預期的行爲,還是調試器崩潰?

+0

你有沒有嘗試設置斷點在主:3(要求後,已加載),運行到斷點,然後設置第二個斷點? –

+0

@AlexBrown按照你的建議,我用'next'跨過了require,然後在* foo.rb *和'cont''d中添加了斷點 - 結果相同。 – waldrumpus

+0

我現在使用ruby 2.1.0有同樣的問題。你解決了嗎? – studyro

回答

1

哇,這很奇怪。不知道這是否有幫助,但也許你可以做到這一點。步過與未來的需要,使富加載然後

b Foo:bar 

,應該在酒吧至少休息

+0

感謝您的指針,它的工作原理。特定行上的斷點原始問題仍然存在。 – waldrumpus

+0

是的,我也玩了很長時間。很奇怪,它似乎應該起作用。 – rainkinz