ruby デバッガーは、実行開始時とは異なるファイルに設定したブレークポイントで停止しません。たとえば、次の 2 つのファイル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
ます。ここで、 を使用して別のファイルの特定の行にブレークポイントを設定しようとすると、Set breakpoint 1 at foo.rb:4b ./foo.rb:4
というメッセージが表示されますが、プログラムが最後まで実行され、デバッガーが停止することはありません。ただし、main.rbの行(例: ) またはメソッド (例: ) で中断すると、デバッガーは期待どおりに停止します。cont
b ./main.rb:3
b Foo.bar
メイン ファイル以外のファイルのブレークポイントでデバッガが停止しないのはなぜですか?
更新: Windows 7 と OS X 10.8 の Ruby 1.9.3 でこれを試しました。どちらの環境でも機能しません。
また、スクリプトが最後まで実行された後、デバッガーが終了することにも気付きました。main.rbのデバッグを開始し、 useを実行するcont
と、bazがコンソールに出力され、すぐにシェルに戻ります。これは予期された動作ですか、それともデバッガがクラッシュした可能性がありますか?