Powerful Debugger

RubyMine brings a clever debugger with a graphical UI for Ruby, JS, and CoffeeScript. Set breakpoints and run your code step by step with all the information at your fingertips.

Convenient user interface

  • Look under the hood of any code and see what's going on—thanks to Frames, Variables and Watches views.
  • The UI is fully customizable letting you arrange, resize and float the views, select toolbar commands, etc. You can also choose whether to ignore non-project code while stepping or not.
  • The debugger UI is also tightly integrated with the code editor: you can navigate between the debugger and the code, view breakpoint information, etc.
  • You also get the complete coding assistance and highlighting in all debugger views.

Smart, flexible breakpoints

  • Place a breakpoint on a line of code and define the hit conditions—a set of Boolean expressions that are evaluated to determine whether to stop the code execution or not.
  • If you have multiple breakpoints in your code, you can set dependencies between them to define the order in which they can be hit.
  • Setting a breakpoint is just a matter of a single mouse click on the gutter or invoking a shortcut.
  • Breakpoints are also available in Rails views, so you can use them for debugging Rails code as well.

Debugging JavaScript and Node.js

  • RubyMine provides an advanced built-in debugger for your JavaScript code, which works with Google Chrome.
  • You can easily debug ECMAScript 6, TypeScript or CoffeeScript code, relying on RubyMine debugger’s support for source maps.
  • A full-featured debugger for Node.js works right out of the box as well. Use it to debug apps running locally or on a remote machine.

Built-in expression evaluato

Evaluate any expression while your debugging session is paused. Type an expression or a code fragment, with coding assistance available in the dialog. All expressions are evaluated against the current context.

Dedicated Watches view

Track any number of expressions, variables, fields and object instances in the current stack frame context. The data are updated dynamically as you progress through your debugging session.

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 along with their values.

Remote debugging

As you connect to a remote host and run a debugging session, RubyMine keeps mapping between the local sources and the sources on the remote side. Several debug processes can be launched simultaneously.