チュートリアル:『Ruby リモートデバッグ』を使ってアプリケーションをデバッグする
RubyMine はリモートマシン上で実行されるアプリケーションをデバッグするための方法を 2 つ提供しています:
リモート Ruby インタープリターを追加し、ローカルプロジェクトとリモートプロジェクトのファイル間のマッピングを設定して、 デバッグセッションを開始します。
リモートマシンでアプリケーションを実行し、リモート Ruby インタープリターを追加し、マッピングを構成し、 実行中のプロセスにアタッチします。
SketchUp(英語) のように、指定された方法は一部のプロジェクトのデバッグには適していない可能性があります。 そのような場合は、 Ruby リモートデバッグ 実行 / デバッグ構成を使用できます。
このチュートリアルでは、 Ruby リモートデバッグ を使用して サンプル Rails アプリケーション(英語)をデバッグする方法を示します。
前提条件
このチュートリアルでは、2 台のマシンを使用して、リモートアプリケーションのデバッグを示します。
ローカルマシン :macOS を搭載した Mac と RubyMine が インストール済み。
リモートマシン: SSH アクセスが有効で Ruby インタープリターが インストールされているUbuntu マシン。
このチュートリアルでは、リモートコンピューターに sample-web-server という名前が付いています。
どちらのマシンでも、 jetbrains ユーザーのホームディレクトリを使用してソースコードを保存します。
'Ruby リモートデバッグ ' 設定を作成する
まず、RubyMine で Ruby リモートデバッグ 構成を作成して設定しましょう:
メインメニューで に移動し、
をクリックして、リストから Ruby リモートデバッグ を選択します。
次の設定を指定します。

名前: 実行 / デバッグ構成名を入力します。
サンプル: リモートデバッグ: sample_rails_app
リモートホスト: リモートマシンのホスト名または IP アドレスを指定します。
サンプル: sample-web-server , 172.30.163.90
リモートポート: IDE とデバッガー間の接続を確立するために使用されるリモートポートを指定します。
サンプル: 1234
リモートルートフォルダー: デバッグするアプリケーションが配置されているリモートマシンのルートフォルダーを指定します。
サンプル: /home/jetbrains/apps/sample_rails_app
ローカルポート: IDE とデバッガー間の接続を確立するために使用されるローカルポートを指定します。
サンプル: 26162
ローカルルートフォルダー: ローカルマシン上のアプリケーションのルートフォルダーを指定します。
サンプル: /Users/jetbrains/RubymineProjects/sample_rails_app
すべての設定を指定したら、 サーバーコマンド フィールドで生成されたコマンドをクリップボードにコピーします。
rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- $COMMAND$後でリモートマシン上で デバッガーを起動するために使用されます。 $COMMAND$ 部分は、アプリケーションを実行するための実際のコマンドに置き換えられます。
実行 / デバッグ構成 ダイアログで OKです。 をクリックします。
リモートインタープリターを設定する
この部分では、SSH を使用してリモートインタープリターを設定します。
設定 ダイアログ Ctrl+Alt+S を開き、 言語とフレームワーク | Ruby インタープリター ページに移動し、
ボタンをクリックして、リストから リモートインタープリターまたはバージョンマネージャー を選択します。

呼び出されたダイアログで、 SSH 資格情報 を選択し、次のようにパラメーターを指定します。

SSH 構成: 省略記号ボタンをクリックして、リモートマシンに接続するための SSH 構成を作成します。
Ruby またはバージョンマネージャーのパス: ここでは、Ruby インタープリターまたは バージョンマネージャーの実行可能ファイルへのパスを指定する必要があります。 このチュートリアルでは、リモートマシンで rbenv を使用します。
すべての設定を指定したら、 OKです。 をクリックします。
前のダイアログでバージョンマネージャー実行可能ファイルへのパスを指定した場合、RubyMine は必要な Ruby インタープリターの選択を提案します。 このステップでは、リモートアプリケーションの実行に使用されるインタープリターを選択する必要があります。

OKです。 をクリックし、 Ruby インタープリター ページで追加されたインタープリターを選択します。

最後に行う必要があるのは、ローカルとリモートプロジェクトのファイル間のマッピングを指定することです。 これを行うには、 パスマッピングを編集
ボタンをクリックします。 プロジェクトパスマッピングの編集 ダイアログで、ローカルおよびリモートプロジェクトのルートパスを指定します。

場合、パスは次のようになります:
ローカルパス: /Users/jetbrains/RubymineProjects/sample_rails_app
リモートパス: /home/deploy/sample_rails_app
このダイアログで OKです。 をクリックし、 設定 ダイアログで OKです。 をクリックします。 これで、リモートプロセスに接続してアプリケーションをデバッグする準備が整いました。
リモートマシンでデバッグを開始する
この部分では、デバッグ用 gems をインストールし、リモートマシン上でデバッグセッションを開始します。
(オプション)RubyMine を使うと、Spring を利用して Rails アプリケーションを デバッグできます。 これには、システムまたはプロジェクトの Spring 構成ファイルを更新して、Spring によって フォーク(英語)されたすべてのプロセスにデバッガーをロードする必要がある場合があります。 これを行うには、次のコードを ~/.spring.rb または config/spring.rb ファイルに追加します。
Spring.after_fork do if ENV['DEBUGGER_STORED_RUBYLIB'] ENV['DEBUGGER_STORED_RUBYLIB'].split(File::PATH_SEPARATOR).each do |path| next unless path =~ /ruby-debug-ide/ load path + '/ruby-debug-ide/multiprocess/starter.rb' end end endデバッグ用 gems をターゲット Ruby インタープリターにインストールします。 これを行うには、 debase と ruby-debug-ide を Gemfile に追加し、
bundle installを実行します。gem 'debase' gem 'ruby-debug-ide'アプリケーションのフォルダーに移動し、次のコマンドを使用してデバッガーをアタッチして実行します。
rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails s
ローカルマシンでデバッグを開始する
これで IDE でデバッグを開始する準備が整いました。
アプリケーションに ブレークポイントを設定します。
デバッグセッションを実行します。 これを行うには、 Ctrl を 2 回押して、ポップアップに構成名(リモートデバッグ: sample_rails_app )を入力します。 Shift キーを押しながら(ダイアログのタイトルが Debug に変わります)、 Enter を押します。