28

如何连接到 Byebug 的远程调试实例(用于 Pow 等)?

4

3 回答 3

40

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

在您的 gemfile 中:

gem 'byebug'

在命令行上:

bundle install

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

export BYEBUGPORT=3001

如果您正在使用其他框架(例如 just 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
于 2014-09-13T12:29:24.093 回答
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>
    

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

于 2014-04-01T18:39:33.487 回答
5

在您的代码中

remote_byebug

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

通过终端连接到它:

byebug -R localhost:8989

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

于 2021-04-27T01:58:48.107 回答