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

时间:2014-04-01 18:39:33

标签: ruby-on-rails ruby-on-rails-4 rack-pow byebug

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

3 个答案:

答案 0 :(得分:36)

约瑟夫的回答很好,但在某些方面令人困惑。他将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

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

[bundle exec] byebug -R localhost:3001

答案 1 :(得分:33)

我必须将来自几个不同来源的信息拼凑起来以实现上述目标,因此我认为为方便起见,我在此处加入了合并指南:

以下是步骤:

  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
    
  2. 重启Pow并访问yourapp.dev

  3. 运行以下命令:

    [bundle exec] byebug -R localhost:<port_you_defined_in_pow_config>
    
  4. 您应该看到与远程实例的成功连接。

答案 2 :(得分:3)

在你的代码中

remote_byebug

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

通过终端连接到它:

byebug -R localhost:8989

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