Как подключить отладчик Rubymine IDE к процессу оболочки? - PullRequest
10 голосов
/ 17 января 2012

Я хочу использовать отладчик IDE Rubymine для отладки процесса ruby, запущенного в командной оболочке, по мере его появления, например "консоль рельсов".

Я получил огромное преимущество от отладчика при запуске веб-сервера (из Rubymine) или тестовых наборов (также запускаемых из Rubymine).

Однако, если процесс не запущен Rubymine, я не знаю, как подключить отладчик.

Я использую версию Rubymine 3.2.4 в Ubuntu с Sun Java 1.6.0_26, Ruby REE 1.8.7 и последние гемы отладки:

ruby-debug-base (0.10.4)
ruby-debug-ide (0.4.17.beta8)

Мысли

Ответы [ 3 ]

6 голосов
/ 12 июня 2012

Вот как вы это делаете в Rails:

Сначала убедитесь, что у вас установлено rdebug-ide:

gem install ruby-debug-ide --platform=ruby

Далее запустите это в консоли:

rdebug-ide --port 6778 -- /projects/your_rails_project/script/rails console

или для рельсов 4.0 +

rdebug-ide --port 6778 -- /projects/your_rails_project/bin/rails console

Или, как @ChristopherWill упомянул ниже , вы можете передать параметр --host, если хотите отладить нелокальный сервер. (Прочитайте его комментарий ниже для предостережений)

Это будет ожидать подключения клиентов удаленной отладки.

  1. Нажмите «Выполнить»> «Изменить конфигурации» в RubyMine, затем добавьте экземпляр «Ruby Remote Debug»

  2. Используйте тот же порт, что и выше 6778 (если вы измените тот, который указан выше, убедитесь, что порты совпадают)

  3. Корневая папка и Локальная корневая папка совпадают, / projects / your_rails_project

  4. Нажмите Применить и закройте.

Затем выберите эту конфигурацию из списка рядом с кнопками запуска и отладки, затем нажмите кнопку отладки. Дайте ему несколько секунд, и консоль будет запускать «консоль rails», где бы вы ни запускали «rdebug-ide»

5 голосов
/ 17 января 2012

Использовать Ruby Remote Debug тип конфигурации в RubyMine. Подробнее см. В официальной документации RubyMine .

Обычно вы запускаете скрипт как:

rdebug-ide --port <port number> -- script.rb

и затем подключитесь к указанному порту из отладчика RubyMine.

3 голосов
/ 31 октября 2015

Я действительно хочу опубликовать здесь что-то, для чего очень сложно найти полный ответ, и мне потребовалось очень много времени, чтобы понять.Есть люди, спрашивающие, как прикрепить удаленную отладку к работнику resque, и вот правильный способ, который наконец работает для меня.Эта статья посвящена поиску в Google, и ее будет легко найти.

ИЗ ОБОЛОЧКИ на сервере (для меня это мой ноутбук) выполните это с корня вашего сайта: rdebug-ide --port 1236 --dispatcher-порт 26166 - хост 0.0.0.0 bin / rake resque: work QUEUE = *

в RubyMine IDE настроить удаленную отладку с: Удаленный хост: 127.0.0.1 Удаленный порт: 1236 Удаленная корневая папка: путь на сервере к сайтуroot Локальный порт: 26166 Локальный корневой путь: путь на рабочей станции к корневому файлу, в котором вы устанавливаете точки останова (в моем случае это все локальные, поэтому все 1 путь и 1 копия файлов)

Запустите вебсервер, как обычно, с помощью: rails s

установите точку останова в вашем работнике Resque и попытайтесь выполнить все, что вам нужно на вашем сайте, чтобы добраться до этой точки останова.

1 примечание - наличие "весеннего" драгоценного камня дало мне ошибки, и мне пришлось закомментировать его / bundle.

...