pat eyler
6/30/2005 6:18:00 PM
I'm running into an unexpected issue with the debugger, and I'm hoping someone
here can help me out. I' ve got a short program like this (stolen directly
from zenspider's RubyInline tutorial):
-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#!/usr/local/bin/ruby -w
class Array
def average
result = 0
self.each { |x| result += x }
result / self.size.to_f
end
end
max_loop = (ARGV.shift || 5).to_i
max_size = (ARGV.shift || 100_000).to_i
a = (1..max_size).to_a
1.upto(max_loop) do
avg = a.average
$stderr.print "."
end
$stderr.puts ""
-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Everytime I step to line 7 (the self.each ... line) or do a step nnn which
executes line 7, the debugger stops there. Neither step or next will move
past this line. If I try to continue the program, it will run to the next
breakpoint or end of the program.
-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
pate@linux:~/scripts> ruby -rdebug averager.rb
Debug.rb
Emacs support available.
averager.rb:3:class Array
(rdb:1) s 13
averager.rb:7: self.each { |x| result += x }
(rdb:1) s
averager.rb:7: self.each { |x| result += x }
(rdb:1) s
averager.rb:7: self.each { |x| result += x }
(rdb:1) s
averager.rb:7: self.each { |x| result += x }
(rdb:1) n
averager.rb:7: self.each { |x| result += x }
(rdb:1) n
averager.rb:7: self.each { |x| result += x }
(rdb:1) n
averager.rb:7: self.each { |x| result += x }
(rdb:1) n 20
averager.rb:7: self.each { |x| result += x }
(rdb:1) c
.....
pate@linux:~/scripts>
-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Any idea what's going on? Is this a bug in the debugger, or am I
misunderstanding something?
--
thanks,
-pate
-------------------------
We are often unable to tell people what they need to know, because
they want to know something else, and would therefore only
misunderstand what we said
- the Raven (George MacDonald, Lilith)