3

问题:

在另一个分支中升级到 Rails 4 并尝试了上次Pry-Remote 与 Pow on Rails 4一起工作的解决方案。我仍然在使用新的 Rails 4 和 Pry Debugger 时遇到困难。

我在跑什么:

rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
Rails 4.2.4
Pry version 0.10.2 on Ruby 2.2.3

  # Debugging
  gem 'pry'
  gem 'pry-byebug'
  gem 'pry-stack_explorer'
  gem 'pry-rails'
  gem 'pry-remote'
  gem 'byebug'

pry (0.10.2)
  coderay (~> 1.1.0)
  method_source (~> 0.8.1)
  slop (~> 3.4)
pry-byebug (3.2.0)
  byebug (~> 5.0)
  pry (~> 0.10)
pry-rails (0.3.4)
  pry (>= 0.9.10)
pry-remote (0.1.8)
  pry (~> 0.9)
  slop (~> 3.0)
pry-stack_explorer (0.4.9.2)
  binding_of_caller (>= 0.7)
  pry (>= 0.9.11)

Mac OS X 10.10.5 (14F27)

Pow 的最新版本

完整的 Gemfile 和 Gemfile.lock

症状:

将 binding.remote_pry 放入代码中,代码会停止但无法进入调试器。在我键入 pry-remote 后,调试器保持“加载”状态。

第一个 pry-remote:调试器未准备好。

第二个远程遥控:没有答案

第三个 pry-remote:保持加载而不输出

第四个 pry-remote:CTRL + C 时输出

在此处输入图像描述

编辑1:

所以按照建议的帖子(https://github.com/Mon-Ouie/pry-remote/issues/8)。

我已经完成并尝试了以下操作:

  • 创建 .prv 文件:

    Pry.config.correct_indent = false

    Pry.config.auto_indent = false

  • 在 main.rb 中添加了“require 'pry-remote'”

  • 没有运行 Unicorn 或 Nginx,所以不需要更新这些

  • 将 Gemfile 更新为gem "pry-remote", :require => "pry-remote"

因此,完成所有这些事情后,仍然没有区别。

编辑2:

在 Alexey Shein 的帮助下,我更进一步。现在他进入调试器,但我不能使用nextand step

在此处输入图像描述

编辑3:

已创建 Pry-Byebug 问题:https ://github.com/deivid-rodriguez/pry-byebug/issues/78

编辑 4: 将此帖子拆分为Pry Remote / ByeBug 接下来进入 Teardown,因为我认为这个问题与 ByeBug 和 Pry-remote 更相关。

4

1 回答 1

0

尝试pry-byebug使用版本1.3.3。似乎pry-byebug作者对他的项目失去了兴趣,因此您可能需要降级到更旧但更稳定的版本。我会做以下事情:

# remove pry from Gemfile, it will be explicitly loaded by dependency of pry-byebug
# gem 'pry'     
gem 'pry-byebug', '=1.3.3'
gem 'pry-stack_explorer'
gem 'pry-rails'
gem 'pry-remote'
# remove also `byebug`, it may give too high version of byebug than needed by pry-byebug
# gem 'byebug' 

现在运行bundle install。之后尝试pow干净地启动,即重新启动/杀死所有spring进程pow

$ spring stop # graceful spring stop
$ ps ax | grep '[s]pring' | awk '{ print $1 }' | xargs kill -9 # force spring to quit
$ touch ~/.pow/restart.txt # restart pow
于 2015-09-28T08:11:13.757 回答