waldrumpus
waldrumpus

Reputation: 2590

Setting breakpoint in different file has no effect

The ruby debugger does not halt on breakpoints I set in files different from the on the execution starts in. For example, consider these two files, foo.rb:

# foo.rb
class Foo
  def bar
    puts "baz"
  end
end

and main.rb:

# main.rb
require './foo'
Foo.new.bar

I start debugging using ruby -r debug .\main.rb. Now, when I try to set a breakpoint on a specific line in another file using b ./foo.rb:4, I get the message Set breakpoint 1 at foo.rb:4, but when I cont, the program executes to the end, and the debugger never halts. However, if I break on a line in main.rb, e.g. b ./main.rb:3, or a method, e.g. b Foo.bar, the debugger halts as expected.

Why doesn't the debugger halt at breakpoints in files other than the main file?

Update: I have tried this with Ruby 1.9.3 on Windows 7 as well as OS X 10.8; it doesn't work in either environment.

I have also just realized that the debugger quits after the script has run till the end: I start debugging main.rb, use cont, then baz is printed on the console and I'm right back in the shell. Is this the expected behaviour, or might the debugger have crashed?

Upvotes: 6

Views: 669

Answers (1)

rainkinz
rainkinz

Reputation: 10394

Wow, that is weird. Not sure if this helps, but maybe you could do this. Step over the require with next so that Foo is loaded then

b Foo:bar

that should at least break on bar

Upvotes: 2

Related Questions