The 'ruby-debug-ide' gem provides the protocol to establish communication between the debugger engine (such as debase or ruby-debug-base) and IDEs (for example, RubyMine, Visual Studio Code, or Eclipse). 'ruby-debug-ide' redirect commands from the IDE to the debugger engine. Then, it returns answers/events received from the debugger engine to the IDE. To learn more about a communication protocol, see the following document: ruby-debug-ide protocol.
Depending on the used Ruby version, you need to add/install the following debugging gems to the Gemfile:
- Ruby 2.x - ruby-debug-ide and debase
- Ruby 1.9.x - ruby-debug-ide and ruby-debug-base19x
- jRuby or Ruby 1.8.x - ruby-debug-ide and ruby-debug-base
For Windows, make sure that the Ruby DevKit is installed.
To start the debugging session for a Rails application, run the following command:
rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 1234 -- bin/rails s
If you want to debug a Rails application run using Docker Compose, you need to start the Rails server from the Docker in the following way:
command: bundle exec rdebug-ide --host 0.0.0.0 --port 1234 -- bin/rails s -p 3000 -b 0.0.0.0
volumes:
- .:/sample_rails_app
ports:
- "1234:1234"
- "3000:3000"
- "26162:26162"
Note that all ports above should be exposed in the Dockerfile.