11

RubymineのIDEデバッガーを使用して、コマンドシェルで実行されているrubyプロセスをデバッグしたいと思います。これは、「railsconsole」などによって生成されるためです。

Webサーバー(Rubymine内から)またはテストスイート(Rubymine内からも実行)を実行すると、デバッガーから大きなメリットが得られます。

ただし、プロセスがRubymineによって開始されていない場合、デバッガーを接続する方法がわかりません。

私は、Sun Java 1.6.0_26、Ruby REE 1.8.7、および最新のデバッグgemを備えたUbuntuでバージョンRubymine3.2.4を使用しています。

ruby-debug-base (0.10.4)
ruby-debug-ide (0.4.17.beta8)

考え?

4

3 に答える 3

7

RubyMineでRubyリモートデバッグ構成タイプを使用します。詳細については、 RubyMineの公式ドキュメントを参照してください。

基本的に、次のようなスクリプトを実行します。

rdebug-ide --port <port number> -- script.rb

次に、RubyMineデバッガーから指定されたポートに接続します。

于 2012-01-16T22:01:47.343 に答える
7

これがRailsでのやり方です:

まず、次のものがrdebug-ideインストールされていることを確認します。

gem install ruby-debug-ide --platform=ruby

次に、コンソールでこれを実行します。

rdebug-ide --port 6778 -- /projects/your_rails_project/script/rails console

またはレール4.0+の場合

rdebug-ide --port 6778 -- /projects/your_rails_project/bin/rails console

または、以下で説明する@ChristopherWillのように--host、非ローカルサーバーをデバッグする場合は、パラメーターを渡すことができます。(警告については、以下の彼のコメントを読んでください)

これにより、リモートデバッグクライアントが接続するのを待ちます。

  1. RubyMineで[実行]>[構成の編集]をクリックし、[Rubyリモートデバッグ]インスタンスを追加します

  2. 上記の6778と同じポートを使用します(上記のポートを変更する場合は、ポートが一致していることを確認してください)

  3. ルートフォルダとローカルルートフォルダは同じです、/ projects / your_rails_project

  4. [適用]をクリックして閉じます。

次に、実行ボタンとデバッグボタンのすぐ横にあるリストからこの構成を選択し、デバッグボタンをクリックします。数秒待つと、「rdebug-ide」を実行した場所でコンソールが「railsconsole」を実行します。

于 2012-06-11T20:05:21.000 に答える
3

完全な答えを見つけるのが非常に難しいものをここに投稿したいのですが、理解するのに非常に長い時間がかかりました。リモートデバッグをresqueworkerにアタッチする方法を尋ねる人がいますが、これが私にとって最終的に機能する適切な方法です。この記事はグーグル検索で高く、見つけやすいでしょう。

サーバー上のシェルから(私にとっては私のラップトップ)、サイトルートからこれを実行します:rdebug-ide --port 1236 --dispatcher-port 26166 --host 0.0.0.0 bin / rake resque:work QUEUE = *

RubyMine IDEで、リモートデバッグを次のように構成します。リモートホスト:127.0.0.1リモートポート:1236リモートルートフォルダー:サーバーからサイトルートへのパスローカルポート:26166ローカルルートパス:ブレークポイントを設定するルートファイルへのワークステーション上のパス(私の場合、すべてローカルなので、すべて1つのパスと1つのファイルのコピー)

次のコマンドを使用して、通常どおりWebサーバーを実行します。

Resqueワーカーにブレークポイントを設定し、そのブレークポイントに到達するためにサイトで必要なものを実行してみてください。

1つの注意-「春」の宝石を持っているとエラーが発生し、コメントアウト/バンドルする必要がありました。

于 2015-10-31T03:22:41.330 に答える