Locomotive and ruby-debug


#1

Anyone had success getting ruby-debug to work with Locomotive? I’ve
got the ruby-debug gem installed, and require ‘ruby-debug’ in my
config file, but when I try to call the debugger from within a rails
method, the app just blows right by it and nothing appears in the
console.

Any help with this would be appreciated.


#2

If Locomotive is still using lighttpd, it won’t work. The best way to
do it AFAIK is just:

rdebug script/server

or if you have the debugger started in your code, just use:

script/server


#3

The EASIEST thing is to load the Footnotes plugin. Search for it at

http://agilewebdevelopment.com/plugins

Then load it using the standard plugin method. From your project
directory:

script/plugin install
http://macromates.com/svn/Bundles/trunk/Bundles/Rails.tmbundle/Support/plugins/footnotes

Footnotes gives you extra goodness if you’re using TextMate – which
you should anyway if you’re trying to learn or develop in RoR on a
Mac. I’m PRETTY sure it works without TextMate.

What it does is automatically place ruby-debug like information on the
bottom of each rendered page. Here’s what it looks like on my machine:

Edit: Controller | View | Layout | Stylesheets | Javascripts
Show: Session | Cookies | Params | Log | General Debug
(TextMate Footnotes)

Click on the link to show whatever and there you are! (The first line,
Edit: won’t work without TextMate.) All this automatically turns off
when you move to Production mode.

—Jim Gagne—


#4

Why is locomotive essential? Can’t you start your app under webrick
or mongrel for debugging? If you do that, it’s straightforward: Just
require ‘ruby-debug’ and just before where you want to stop, call the
debugger method.


#5

Locomotive now runs on Mongrel, so this shouldn’t be a problem.
Footnotes looks cool, but I need to be able to stop execution at a
particular point and examine/change variables. I need
a…uh…breakpointer.

Anyone who knows how to get ruby-debug working w/ Locomotive, please
speak up! I’m getting desperate here.