tags:

views:

821

answers:

5

Shoes has some built in dump commands (Shoes.debug), but are there other tools that can debug the code without injecting debug messages throughout? Something like gdb would be great.

+2  A: 

Have you looked at the ruby-debug gem?


% sudo gem install ruby-debug

The rdebug executable gives you a similar interface to gdb (breakpoint setting, etc). You just simply execute your script with rdebug instead of ruby.

You can also do something like this to avoid manually setting breakpoints:


class Foo
  require 'ruby-debug'
  def some_method_somewhere
    debugger # acts like a breakpoint is set at this point
  end
end

Here's a tutorial on ruby-debug: http://www.datanoise.com/articles/2006/7/12/tutorial-on-ruby-debug

Brian Phillips
How would you do this in Shoes? There's no terminal.
Peeja
This is useful debugging info, but its not clear how to apply to Shoes.
jrhicks
+3  A: 

The shoes console. Press Alt+/ (or apple+/ on a mac) to see the stack trace of your application.

Drew Olson
A: 

You can also use Shoes.show_log to automatically open a debug console.

A: 

Note that if you use Alt + / you'll have to run that "before" starting the app

rogerdpack
A: 

I was a bit confused about the Apple-/ (or Alt-/) bit mentioned here. What I ended up doing was running ./shoes with no arguments, which popped up the console, then started my app with *./shoes my_app.rb*.

greg