問題タブ [byebug]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Sidekiq と Foreman で Byebug を使用する方法
フォアマンを使用してレールと sidekiq サーバーを起動するレール アプリケーションがあります。foreman は通常の byebug とうまくやり取りできないため (入力時にプロンプトが表示されない)、Rails サーバーと sidekiq サーバーの両方にリモート デバッグをセットアップしました。これは Rails サーバーでは完全に機能しますが、sidekiq サーバーの byebug サーバーに接続すると、次のようになります。
そして、byebug ブレークポイントをキャッチできません。
ドキュメントによると、(byebug:ctrl) プロンプトは、プログラムが正常に終了したことを意味します ( https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md )が、sidekiq は問題なくジョブを実行しています。 .
構成に何か問題がありますか、それとも sidekiq が byebug のリモート デバッグと互換性がないだけですか?
プロファイル:
config/initializers/byebug.rb:
リモート デバッグを使用しない場合、byebug は sidekiq で正常に機能することに注意してください (ただし、フォアマンでは入力時にプロンプトが表示されません)。
Byebug.wait_connection = true
また、以前Byebug.start_server
に使用してみましたが、同じ問題があることに注意してください。
ruby - foreman が起動したアプリを byebug でデバッグします。リモートデバッグは接続しますが、プロンプトが表示されません
複数のアプリを起動する職長がいます。ポートを使用してbyebugサーバーをセットアップしました
でサービスを開始します
ターミナルで報告されたサービスの開始とポート番号が表示されます。
リモートオプションを使用して byebug を起動すると、次のようになります。
それが私の問題です。「つながった」しかしbyebugプロンプトはありません。また、私が求めているブレークポイントは起動しているように見えますが、byebyg リモート デバッグはそれ以上何もしません。
アイデア?誰?私はすべてを検索しましたが、誰も同様の問題を抱えているようには見えません。
私のシステムパラメータ:
- OS X エル キャピタン 10.11.2
- ルビー2.2.3
- レール4.1.14
- byebug 8.2.1
- 職長 0.78.0
ruby-on-rails - Railsの統合テストで失敗しました
Railsチュートリアル(M. Hartl)のサンプルプロジェクトを開発していたのですが、9章の終わりで結合テストに失敗しました。
テストのアサーションは次のようになります。
エラーの本文は次のとおりです。
そのため、テストのデバッグにbyebugを使用しましたが、問題は見つかりませんでした。テスト モジュールに対するサーバーの応答は次のとおりです (「JSON.parse(response.body)」の結果):
" p user "を視聴した場合の応答は次のとおりです。
アップデート:
統合テストは次のとおりです。
ruby-on-rails - 乗客+ nginxの下でbyebugを実行する方法はありますか?
WEBrickの開発環境で動作するシンプルなRailsアプリを開発しました。ただし、本番環境に移行すると機能しません。アセットや物に関する些細なエラーを修正しました。ただし、うまくいかないこともあります。デバッガーで何が起こっているかをインタラクティブに確認できると非常に便利です。
コードに挿入できbyebug
、コードの実行を一時停止しますが、パッセンジャーもnginxもSTDOUTに記録しないため(デフォルトで)、byebugプロンプトに到達できません。(そしてどちらも STDIN を読まない)
パッセンジャー + nginxbyebug
で実行する方法はありますか?
編集
今回私の問題はhttpsに関連していました。
ruby-on-rails - 本番環境に Ruby IRB シェル gem を含めると、パフォーマンスにどのような影響がありますか? (つまり、Pry / Byebug / awesome_print ...)
Rails プロジェクトでは、シェル拡張 gem が Gemfile のdevelopment
/test
セクションにのみ含まれているのがよく見られます。おそらく、これらの gem が製品版の Gemfile に含まれていると、パフォーマンスやメモリに影響があるためです。
しかし、私は Heroku 上の Rails プロダクション サーバーでかなり多くの作業を行っているため、開発をより模倣できるようにシェルをきれいにしたいと考えています (たとえば、pry
and/or byebug
、 orのような gem に戻すなどawesome_print
)。ただし、アプリの速度が大幅に低下する可能性があることがわかっている場合、それらを本番環境に追加することは正当化できません。
byebug
では、pry
やawesome_print
Production on Rails のようなシェル拡張 gem を含めることのパフォーマンスへの影響は何ですか? 運用サーバー シェルを開いていなくても、単一の dyno 運用 Rails サーバーのパフォーマンスに影響しますか? 問題はメモリ ヒットですか、それともシェルを開いていなくてもこれらの gem がサーバーの速度に影響を与えるのでしょうか?
ruby - Ruby Pry をインストールすると、奇妙な結果が得られますか?
私のワークステーション:
これを調査したところ、pry-navが予期せず動作することがわかりましたが、その質問に従って再インストールしても問題は解決しませんでした。
問題 -- 最近、Brightbox Cloud ppa リソースを使用して Ruby 2.2 および 2.3 をシステム全体にインストールしました。
次に、Pry gem と関連する依存関係をインストールします。
この結果:
ファイルアクセスを少し開くことも必要です。
私は以前、Ruby 1.9 と 2.1 を使用した古い RVM リグで Pry を使用していましたが、そこではうまく機能していましたが、明らかに Pry インストールの「公式を失った」か、何かが微妙に変更されています (?)。ああ、物事を複雑にする Rails はなく、単純な Ruby スクリプトだけです。
次のようなスクリプト コードを実行すると (RVM リグと非公開でインストールされた gem で問題なく動作しました):
もちろん、Pry-Byebug が binding.pry メソッドの呼び出しに続く行でブレークポイントを設定することを期待しています。代わりに、次のブレークポイント (?) が表示されます。
それで、ここで何が起こっているのですか?.../pry-nav/tracer.rb の実行モジュールの 21 行目で Pry が中断するのはなぜですか?
Gem の作業セットを作成するには、Pry と Byebug をどのようにインストールする必要がありますか?
この回答を慎重に文書化することを約束しますので、将来再び失われることはありません! ティア。
追加 - この質問を投稿した後、さらに掘り下げて、これに出くわしました:
https://plus.google.com/114275173749981855325/posts
これは、pry と pry-nav のみをインストールする必要があり、pry-byebug はインストールしないことを示唆しています。それで、pry-byebug と ta-da! をアンインストールしました。Pry のデバッグが再び適切に機能するようになりました。
このような長い質問をして申し訳ありませんが、そのような簡単な解決策で自分自身に答えるだけです. 願わくば、この投稿が今後の「Pry のインストール方法」の改善として存続することを願っています。pry のインストールに関する既存の「信頼できる」ドキュメントは、あいまいで不正確です (または、この潜在的な問題に対処していないだけかもしれません)。
ありがとうございます。また、ご迷惑とご迷惑をおかけして申し訳ありません。
ruby - Byebug でブレークポイントなしで続行する方法
byebug
gem を使用するとcontinue
、次のブレークポイントまで次のことができます。
いろいろ調べましたが、「ブレークポイントなしで続行」する方法が見つかりません。私が考えることができる唯一の方法は、byebug
ステートメントを削除またはコメントし、終了しq!
てテストを再開することです。
byebug
Rubyの他のステートメントで停止せずに続行するにはどうすればよいですか?
ruby-on-rails - プロダクションirbからメソッドにデバッグ
たとえば、特定の ActiveRecord オブジェクトに関する問題を探すとき、実稼働システムで次のことを行っていることに気付くことがよくあります。
行がエラーをスローする理由を再現できない場合がarticle.do_something(3)
あるため、本番モードでサーバー上で直接デバッグしたいと考えています。
問題は次のとおりです。オブジェクト/インスタンス#do_something
の引数を使用してメソッドにステップインするにはどうすればよいですか?3
article
もちろん、そのメソッドにブレークポイントを設定し、プロダクションをリロードして、デバッグが完了するまですべての顧客をそのブレークポイントで待機させることもできます...しかし、それは最良のアイデアではありません.
では、実行中のirb / pryセッションから特定のインスタンスのメソッドにデバッグする方法はありますか? (どちらでもOKです)