Как я могу работать с ruby-debug-ide?

Я не могу заставить свой ruby-debug-ide работать правильно. У меня есть основное приложение rails, и я хотел бы отлаживать RubyMine. Прежде чем я даже запустил RubyMine, мне нужно включить rdebug-ide в моей бродящей виртуальной машине. Когда я перехожу к директории проекта, я читаю онлайн, мне нужно ввести следующую команду:

rdebug-ide --port 1236 --dispatcher-port 26166 --host 0.0.0.0 - bin/rails s -b 0.0.0.0

Однако, когда я запускаю эту команду, я получаю это сообщение: введите описание изображения здесь

Я также попробовал модифицированную версию указанной выше команды: (дополнительная тире)

rdebug-ide --port 1236 --dispatcher-port 26166 --host 0.0.0.0 -- bin/rails s -b 0.0.0.0

И я получаю это как результат: введите описание изображения здесь Сначала это выглядит хорошо, но сервер никогда не запускается. Он никогда не отображает информацию о сервере, и он просто сидит здесь и зависает, пока я не удалю CTRL + C с сервера. Я не могу заставить rdebug-ide работать вместе с рельсами. Кто-нибудь знает, как я могу это исправить?

Ответ 1

Я считаю, что вы должны добавить команду в конфигурацию Ruby Remote Debug внутри RubyMine.

Run > Edit Configurations > Add Ruby remote debug.

Ответ 2

У меня есть удаленная отладка RubyMine для работы: -)

Прежде чем начать, убедитесь, что у вас установлены debase и rdebug-ide:

gem list | grep debase    
gem list | grep ruby-debug-ide

sudo gem install debase
sudo gem install ruby-debug-ide

1. Запустить сервер Rails

Прежде всего, вам нужно запустить сервер Rails:

hello_rails$ rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails server
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.2.beta10, file filtering is supported) listens on 0.0.0.0:1234

Для вашей справки мои версии Ruby, Rails и Ubuntu:

$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux-gnu]

$ rails -v
Rails 5.1.4

$ lsb_release -a
Description:    Ubuntu 16.04.3 LTS
Codename:       xenial

Как вы заметили, сервер никогда не запускается. Он просто висит там. Это действительно правильно. Он висит там, ожидая подключения, например, от RubyMine.

2. Удаленная отладка с RubyMine

Теперь запустите RubyMine (я использую RubyMine 2017.2.4), Run → Debug... → Edit Configurations...

Нажмите плюс знак "+", чтобы добавить новую конфигурацию, и выберите удаленный отладочный файл Ruby.

введите описание изображения здесь

Заполните форму и нажмите кнопку "Отладка". Сразу же сервер больше не висит там, и запускается сервер Rails:

hello_rails$ rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails server
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.2.beta10, file filtering is supported) listens on 0.0.0.0:1234
WARN: Unresolved specs during Gem::Specification.reset:
      rake (>= 0.8.1)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
=> Booting Puma
=> Rails 5.1.4 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.10.0 (ruby 2.4.2-p198), codename: Russell Teapot
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000

Наконец, вы можете установить точки останова в RubyMine и начать удаленную отладку: -)