I’m still having trouble with the debugger and debugging
Here’s part of my source …
- #!/usr/bin/env ruby
- require ‘rubygems’
- require ‘ruby-debug’
- Debugger.start
-
- debugger
Here’s my session
f:\UltraDedup>ruby -rdebug UltraDedup.rb
Debug.rb
Emacs support available.
UltraDedup.rb:2:require ‘rubygems’
(rdb:1) b 3
Set breakpoint 1 at UltraDedup.rb:3
(rdb:1) b 4
Set breakpoint 2 at UltraDedup.rb:4
(rdb:1) b 6
Set breakpoint 3 at UltraDedup.rb:6
(rdb:1) c
F:/InstantRails-2.0-win/ruby/lib/ruby/1.8/rational.rb:78: undefined method
gcd’ for Rational(1, 2):Rational’ (NoMethodError)
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/config_file.rb:220:in
load_file' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/config_file.rb:168:in
initialize’
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:384:in
new' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:384:in
configuration’
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:634:in
path' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:68:in
installed_spec_directories’
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:58:in
from_installed_gems' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:881:in
source_index’
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/gem_path_searcher.rb:81:in
init_gemspecs' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/gem_path_searcher.rb:13:in
initialize’
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:839:in
new' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:839:in
searcher’
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:838:in
synchronize' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:838:in
searcher’
from
F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:478:in
find_files' from F:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1103 from UltraDedup.rb:2:in
require’
from UltraDedup.rb:2
F:/InstantRails-2.0-win/ruby/lib/ruby/1.8/rational.rb:78: gcd =
num.gcd(den)
(rdb:1) quit
As you can see … I either don’t stop where I think I’m stopping or I
am getting this strange stack before I hit line 3.
Any thoughts???
Damn … I don’t have this problem in an Instant Rails environment.
I am using Instant Rails to develope a Ruby/FXRuby program. Is that a
no-no?
ruby -rdebug UltraDedup.rb
invokes the debugger that comes with Ruby, not ruby-debug. To invoke
ruby-debug run as rdebug.
Rocky,
Friday, July 16, 2010, 5:10:04 AM, you wrote:
r> ruby -rdebug UltraDedup.rb
r> invokes the debugger that comes with Ruby, not ruby-debug. To invoke
ruby-debug run as rdebug.
May the gods smile on your house and your family.
Rocky, what does ruby-debug do that the native debugger does not?
I’m not groking this at all.
Ralph
Rocky, what does ruby-debug do that the native debugger does not?
Faster, less bugs.
Also, if you want to stop where you exception is thrown I believe you
can run
rdebug:1 > catch Exception
and it will stop after it’s thrown.
It’s unfortunate that the 2 different debuggers both use the word
rdebug somehow in their invocation… With the original debug.rb, you
start debugging your program via ‘ruby -rdebug’ whereas with
ruby-debug gem, you start debugging via ‘rdebug’. This makes it more
confusing than it ought to be.
With ruby-debug, I start debugging via the “debugger” method in my
code, possibly conditional, in the exact place I want it. Couldn’t be
happier!
On 7/16/10, rocky <[email protected]/> wrote:
ruby -rdebug UltraDedup.rb
invokes the debugger that comes with Ruby, not ruby-debug. To invoke
ruby-debug run as rdebug.
Furthermore, if you run your ruby program via the rdebug command, you
needn’t modify your source code at all.
It’s unfortunate that the 2 different debuggers both use the word
rdebug somehow in their invocation… With the original debug.rb, you
start debugging your program via ‘ruby -rdebug’ whereas with
ruby-debug gem, you start debugging via ‘rdebug’. This makes it more
confusing than it ought to be.
On Jul 16, 12:40 pm, Caleb C. [email protected] wrote:
It’s unfortunate that the 2 different debuggers both use the word
rdebug somehow in their invocation… With the original debug.rb, you
start debugging your program via ‘ruby -rdebug’ whereas withruby-debuggem, you start debugging via ‘rdebug’. This makes it more
confusing than it ought to be.
Yes, it rdebug was an unfortunate name. In the rewrite [1], I don’t
make that mistake. However currently that debugger is called rbdbgr
which I have come to learn that that is a very very bad name for the
project. I need to change that eventually – different mistakes!
With regards to the question to the differences between debug.rb and
ruby-debug, others have answered this very nicely. Thanks! And there
is Pascal’s blog on this from a while ago [2].
Nevertheless I’ll try to summarize differences and note the possible
confusion on the next update of “Debugging with ruby-debug” [3].
[1] http://github.com/rocky/rbdbgr
[2]
A better Rails debugger: ruby-debug – nanoRAILS
[3] ruby-debug