LoginSignup
0
0

More than 3 years have passed since last update.

【Rails】pry-byebugがブレークポイントをスルーして止まってくれない問題

Last updated at Posted at 2020-10-14

開発環境

Docker: v19.03.13
Ruby: v2.5.7
Rails: v5.2.4.4
pry: v0.13.1
pry-byebug: v3.9.0
PostgreSQL: psql (PostgreSQL) 13.0 (Debian 13.0-1.pgdg100+1)

内容

Docker環境にて、Ruby on Rails の Gem Pry-byebugを導入し、処理を止めて変数やパラメータ、処理の流れを確認していたりしてたのですが急に止まってくれなくなりました。。。
本当に。急に。
コンソール上の表示では、ブレークポイントで=>マークは付くのですが下のように停止してくれずにブレークポイントをスルーしてレンダリングが始まってしまう状況に陥りました。
スクリーンショット 2020-10-14 9.47.02.png
[1] pry(#<HomesController>)>と、デバッグ時のコマンド入力できそうな部分も表示はされるのですが何もしていないのにそのままスルーされてレンダリング...
初めての挙動でしたので、ネット上で色々と調べてみたのですがどこにも情報が載ってなく、2日程ハマりました...

解決策

結論から申し上げますと、アプリケーションルートフォルダ直下にあるtmpを削除することで正常動作するようになりました。
どうして、tmpフォルダを削除したのかというところですがネット上で他の言語も含めて情報を見ていたらキャッシュtmpに保存されていると知りまして、「もしや、この影響で不具合が起きてるのでは?? キャッシュなら削除したって問題ない??Gitで管理してるし不具合起きたら戻せば良いよね...」と思い、削除してみたら当たりました。笑
tmpって、Temporary File(=一時ファイル)を指しているんですね...勉強になります。笑
こういうフォルダやファイルのネーミングからヒントを得られましたね。意味を知っておくことも重要なんだなと感じました。

Railsガイドを見ても、同じようにアクションキャッシュなどを格納するフォルダと書いてあります。
ただ、失敗したなと思うのは Railsガイドには

rails tmp:cache:clearで、tmp/cacheを空にします。
rails tmp:sockets:clearで、tmp/socketsを空にします。
rails tmp:screenshots:clearで、tmp/screenshotsを空にします。
rails tmp:clearで、cache、sockets、screenshotディレクトリを空にします。
rails tmp:createで、cache、sockets、pidsのtmpディレクトリを作成します。

と、記載してありました。

一気にフォルダを消すのではなく、このコマンドを実行して切り分け行えたらもっと理解を深められたなぁと反省しております。
正常動作に戻ってしまったので原因に関しては掴めませんでしたが、同じような状況になられましたらお試し頂けたらと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0