Как подключиться к удаленному отладочному экземпляру Byebug (для использования с Pow и т. д.)?
Как использовать Byebug с удаленным процессом (например, pow)
Ответы (3)
В вашем коде
remote_byebug
Вызовите свой код (например, обновив страницу). Это запустит локальный сервер byebug на порту 8989. Затем ваш код «зависнет» в ожидании подключения клиента.
Подключаемся к нему через терминал:
byebug -R localhost:8989
Настройка сервера вручную больше не требуется с https://github.com/deivid-rodriguez/byebug/pull/406/files
Ответ Джозефа был хорошим, но в некоторых мелочах сбивающим с толку. Он помещает запуск byebug-сервера в config/environments/development.rb
, когда лучше было бы в инициализаторе. Кроме того, экспорт переменной среды выполняется в .powenv
или .powrc
. Вот как я заставил его работать.
В вашем гемфайле:
gem 'byebug'
В командной строке:
bundle install
Если вы используете Pow, добавьте в .powenv
следующее:
export BYEBUGPORT=3001
Если вы используете другие фреймворки (например, только foreman
), вам, возможно, придется изменить .env
.
In config/initializers/byebug.rb
if Rails.env.development? and ENV['BYEBUGPORT']
require 'byebug/core'
Byebug.start_server 'localhost', ENV['BYEBUGPORT'].to_i
end
И, наконец, в командной строке:
touch tmp/restart.txt
Как только вы перейдете на свой сайт pow, сервер byebug должен быть запущен. Теперь в командной строке вы можете:
[bundle exec] byebug -R localhost:3001
Чтобы выполнить описанное выше, мне пришлось собрать воедино информацию из нескольких разных источников, поэтому я решил включить сюда сводное руководство для удобства:
- https://github.com/deivid-rodriguez/byebug/pull/29,
- https://github.com/deivid-rodriguez/byebug/pull/36,
- https://github.com/deivid-rodriguez/byebug/issues/31
- http://mines.mouldwarp.com/2012/04/pow-guard-and-rdebug-staying-in-web-app.html
Вот шаги:
В config/environments/development.rb добавляем:
require 'byebug' #set in your .powconfig if ENV['RUBY_DEBUG_PORT'] Byebug.start_server 'localhost', ENV['RUBY_DEBUG_PORT'].to_i else Byebug.start_server 'localhost' end
Перезапустите Pow и посетите yourapp.dev.
Запустите следующее:
[bundle exec] byebug -R localhost:<port_you_defined_in_pow_config>
Вы должны увидеть успешное подключение к удаленному экземпляру.
Connecting to byebug server localhost:12346. Connected.
и множеством вызовов byebug
в своем коде, но ничего не сломалось! Я в растерянности на данный момент - если у вас есть другие идеи, я все слушаю! В противном случае, спасибо вам в любом случае за вашу помощь!
- person Andy Adams; 06.06.2014
require 'byebug/core'
в данный момент — см. deivid-rodriguez/byebug/issues/
- person Whatcould; 08.12.2015