我如何连接到Byebug的远程调试实例(用于Pow等)?
我如何连接到Byebug的远程调试实例(用于Pow等)?
Joseph的回答很好,但在某些小方面仍然令人困惑。他把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
为了完成上述任务,我不得不从几个不同的来源汇集信息,因此我想在这里提供一个合并的指南以方便参考:
以下是步骤:
在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
重新启动Pow并访问yourapp.dev
运行以下命令:
[bundle exec] byebug -R localhost:<port_you_defined_in_pow_config>
Connecting to byebug server localhost:12346. Connected.
,我的代码中有很多 byebug
调用,但没有断点!我现在感到困惑 - 如果你有其他的想法,我愿意听取!否则,无论如何,谢谢你的帮助! - Andy Adamsrequire 'byebug/core'
— 请参阅 https://github.com/deivid-rodriguez/byebug/issues/185#issuecomment-155256967 - Whatcould在你的代码中
remote_byebug
刷新页面以调用您的代码。这将在端口8989上启动本地byebug服务器。然后,您的代码将“挂起”,等待客户端连接。
通过终端连接到它:
byebug -R localhost:8989
根据这个链接,手动配置服务器已经不再必要。