Как подключиться к удаленному экземпляру отладки Byebug (для использования с Pow и т.д.)?
Как использовать Byebug с удаленным процессом (например, pow)
Ответ 1
Мне пришлось собрать информацию из нескольких разных источников, чтобы выполнить вышеизложенное, поэтому я подумал, что для удобства я буду включать консолидированный справочник:
- 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/environment/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>
Вы должны увидеть успешное соединение с удаленным экземпляром.
Ответ 2
Ответ Джозефа был хорошим, но смущающим по-разному. Он помещает запуск сервера byebug в config/environments/development.rb
, когда было бы лучше в инициализаторе. Кроме того, экспортирование переменной окружения происходит в .powenv
или .powrc
. Вот как я заработал.
В вашем gemfile:
gem 'byebug'
В командной строке:
bundle install
Если вы используете Pow, добавьте следующее в .powenv
:
export BYEBUGPORT=3001
Если вы используете другие фреймворки (например, просто foreman
), вам, возможно, придется изменить .env
.
В 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
Как только вы перейдете на свой сайт, сервер beebug должен быть запущен. Теперь в командной строке вы можете:
[bundle exec] byebug -R localhost:3001