如何使用Byebug进行远程处理(例如,pow)

Jos*_*ers 27 ruby-on-rails ruby-on-rails-4 byebug rack-pow

如何连接到Byebug的远程调试实例(与Pow等一起使用)?

Nic*_*now 38

约瑟夫的回答很好,但在一些小方面令人困惑.他将byebug服务器的起始位置放在config/environments/development.rb初始化器中会更好.此外,环境变量的导出进入.powenv.powrc.这就是我开始工作的方式.

在你的gemfile中:

gem 'byebug'
Run Code Online (Sandbox Code Playgroud)

在命令行上:

bundle install
Run Code Online (Sandbox Code Playgroud)

如果您使用Pow,请将以下内容添加到.powenv:

export BYEBUGPORT=3001
Run Code Online (Sandbox Code Playgroud)

如果您正在使用其他框架(例如,仅仅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
Run Code Online (Sandbox Code Playgroud)

最后在命令行上:

touch tmp/restart.txt
Run Code Online (Sandbox Code Playgroud)

一旦你去了pow站点,应该启动byebug服务器.在命令行上,您现在可以执行以下操作:

[bundle exec] byebug -R localhost:3001
Run Code Online (Sandbox Code Playgroud)


Jos*_*ers 34

我不得不将来自几个不同来源的信息拼凑起来完成上述工作,所以为了方便起见,我想我会在这里加入一份综合指南:

以下是步骤:

  1. 在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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 重启Pow并访问yourapp.dev

  3. 运行以下命令:

    [bundle exec] byebug -R localhost:<port_you_defined_in_pow_config>
    
    Run Code Online (Sandbox Code Playgroud)

您应该看到与远程实例的成功连接.

  • 我正在使用pow.我试了一下答案,没有运气.我正坐在一个终端上,连接到byebug服务器localhost:12346.在我的代码中连接.和许多`byebug`调用,但没有破坏!我现在处于亏损状态 - 如果你有任何其他想法,我全都耳朵!否则,无论如何,谢谢你的帮助! (2认同)
  • 请注意,您此时需要添加`require'byebug / core'` —请参阅https://github.com/deivid-rodriguez/byebug/issues/185#issuecomment-155256967 (2认同)

Dyl*_*ile 8

在你的代码中

remote_byebug
Run Code Online (Sandbox Code Playgroud)

调用您的代码(例如,通过刷新页面)。这将在端口 8989 上启动本地 byebug 服务器。然后您的代码将“挂起”等待客户端连接。

通过终端连接到它:

byebug -R localhost:8989
Run Code Online (Sandbox Code Playgroud)

从https://github.com/deivid-rodriguez/byebug/pull/406/files开始,不再需要手动配置服务器