How to use Byebug with a remote process (e.g., pow)

后端 未结 2 1279
遥遥无期
遥遥无期 2021-01-30 04:43

How do I connect to a remote debugging instance of Byebug (for use with Pow, etc)?

相关标签:
2条回答
  • 2021-01-30 04:58

    Joseph's answer was good but confusing in some small ways. He places the starting of the byebug server in config/environments/development.rb, when it would be better in an initializer. Additionally the exporting of the environment variable go in .powenv or .powrc. This is how I got it to work.

    In your gemfile:

    gem 'byebug'
    

    On the command line:

    bundle install
    

    If you are using Pow, add the following to .powenv:

    export BYEBUGPORT=3001
    

    If you are using other frameworks (e.g. just foreman), you may have to modify .env instead.

    In config/initializers/byebug.rb

    if Rails.env.development? and ENV['BYEBUGPORT']
      require 'byebug/core'
      Byebug.start_server 'localhost', ENV['BYEBUGPORT'].to_i
    end
    

    And finally on the command line:

    touch tmp/restart.txt
    

    Once you go to your pow site, the byebug server should be started. On the command line you can now do:

    [bundle exec] byebug -R localhost:3001
    
    0 讨论(0)
  • 2021-01-30 05:10

    I had to piece together information from several different sources to accomplish the above, so I thought I'd include a consolidated guide here for convenience:

    • 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

    Here are the steps:

    1. In config/environments/development.rb, add:

      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
      
    2. Restart Pow and visit yourapp.dev

    3. Run the following:

      [bundle exec] byebug -R localhost:<port_you_defined_in_pow_config>
      

    You should see a successful connection to the remote instance.

    0 讨论(0)
提交回复
热议问题