web-dev-qa-db-ja.com

Byebugをリモートプロセス(例:pow)で使用する方法

Byebugのリモートデバッグインスタンスに接続するにはどうすればよいですか(Powなどで使用するため)?

28
Joseph Siefers

上記を達成するために、いくつかの異なるソースからの情報をつなぎ合わせる必要があったので、便宜上、ここに統合ガイドを含めようと思いました。

手順は次のとおりです。

  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
    
  2. Powを再起動し、yourapp.devにアクセスします

  3. 以下を実行します。

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

リモートインスタンスへの接続が成功するはずです。

33
Joseph Siefers

ジョセフの答えは良かったが、いくつかの小さな点で混乱した。彼は、バイバグサーバーの起動を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

Powサイトにアクセスすると、byebugサーバーが起動します。コマンドラインで次のことができます:

[bundle exec] byebug -R localhost:3001
37
Nick Gronow