Подтвердить что ты не робот

Как использовать Byebug с удаленным процессом (например, pow)

Как подключиться к удаленному экземпляру отладки Byebug (для использования с Pow и т.д.)?

4b9b3361

Ответ 1

Мне пришлось собрать информацию из нескольких разных источников, чтобы выполнить вышеизложенное, поэтому я подумал, что для удобства я буду включать консолидированный справочник:

Вот шаги:

  • В 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