ローカル環境でpryのbinding.pryが効かない時の対処法です。
ブレークポイントを置いても正常に動作しない
paizaのスキルチェックを解いていた時にはまりました。rubyの処理をローカル環境でデバックしながらやろうとrequire 'pry'
してbinding.pry
でブレークポイントを置いたのですが、どこにブレークポイントを置いても、下記箇所で処理が止まってしまい、にっちもさっちもいきませんでした。
12: def run(&block) 13: # For performance, disable any tracers while in the console. 14: # Unfortunately doesn't work in 1.9.2 because of 15: # http://redmine.ruby-lang.org/issues/3921. Works fine in 1.8.7 and 1.9.3. 16: stop unless RUBY_VERSION == '1.9.2' 17: 18: return_value = nil 19: command = catch(:breakout_nav) do # Coordinates with PryNav::Commands 20: return_value = yield => 21: {} # Nothing thrown == no navigational command 22: end
解決方法
どうやらpry系のgemの依存関係でこう言った問題が生じるようです。
% gem list pry [14:39:52] *** LOCAL GEMS *** pry (0.10.3, 0.10.1) pry-byebug (3.1.0) pry-doc (0.6.0) pry-nav (0.2.4) pry-rails (0.3.4) pry-remote (0.1.8) pry-stack_explorer (0.4.9.2)
自分の場合はgem pry-nav
が邪魔をしていました。
アンインストールします。
% gem uninstall pry-nav [14:43:06] Successfully uninstalled pry-nav-0.2.4 ^_^ ~/Desktop % gem list pry [14:45:42] *** LOCAL GEMS *** pry (0.10.3, 0.10.1) pry-byebug (3.1.0) pry-doc (0.6.0) pry-rails (0.3.4) pry-remote (0.1.8) pry-stack_explorer (0.4.9.2)
これで治りました!
コメントを残す