Graphical Debugger for Ruby and Rails Code

RubyMine brings the power of advanced graphical debugger to Ruby and Ruby on Rails development. Slick, fully customizable GUI keeps all its features at your fingertips: smart breakpoints, dedicated views for watches and stack, expression evaluator and more.

The debugger works on all supported platforms and with any Ruby SDK or with JRuby.

Convenient User Interface

RubyMine debugger interface with Frames, Variables and Watches views lets you look under the hood of any code and see what's going on.

The UI is fully customizable — you can arrange, resize and float the views, select toolbar commands, etc. to get the best out of your desktop space.

Debugger UI is also tightly integrated with the code editor — you can navigate between debugger and the code, view breakpoint information, etc.

And you get the complete coding assistance and highlighting everywhere in all debugger views.

Smart, Flexible Breakpoints

RubyMine breakpoints let you streamline and speed up the debugging process. Just place a breakpoint which on an arbitrary line of code, define the hit conditions — a set of Boolean expressions that are evaluated to determine whether to stop the code execution, and you get a perfect tool for debugging your application.

If you have multiple breakpoints in your code, you can set dependencies between them to define the order in which they can be hit.

Single click to toggle breakpoint

Setting a breakpoint is just a matter of a single mouse click on the gutter.

Alternatively you can open the Run menu and select View Breakpoints, or press Ctrl+Shift+F8⌘⇧F8.

Breakpoints in Rails view file

Breakpoints are even available in Rails views, so you can use them for debugging Rails code as well.

Built-in Expression Evaluator

You can evaluate any expression while debugging session is paused or a breakpoint is hit.

Just press Alt+F8⌥F8 and type an expression or a code fragment. RubyMine editor coding assistance is of course available here.

Remember that all expressions are evaluated against the current context.

Dedicated Watches View

Debugger watches

With Watches view you can track any number of expressions, variables, fields and object instances in the current stack frame context.

The data is updated dynamically as you progress a debugging session. To create a watch, you can either type an expression, or select a variable (instance or class), instance, etc. and click Add to Watches.

Frames and Call Stack

When a breakpoint is hit or code execution is suspended, you can use the Frames panel to examine the current threads, their state, call stack, methods and variables and their values. When you select a thread, the values available to this frame's method call are displayed in the Variables tab, so you can further explore them. Also, you can jump to the underlying source code with a single mouse click.

Remote Debugging

To investigate a problem happening in a Ruby application on a remote machine a special 'Ruby remote debug' configuration is available.

Specify remote host to connect to, remote and local root folders for sources mapping on remote and local machines.

Execute rdebug-ide command on the remote server, and run your debug configuration from RubyMine to start debugging.

Remote debug configuration settings

to the top