RubyMineでpowで起動したアプリをデバッグする


RubyMineでpowで起動したアプリケーションのプロセスにアタッチしてデバッグする手順

手順まとめ

  • アプリを作成する
  • powで起動する
  • gemをインストールする
  • 設定ファイルを作成する
  • RubyMineを設定する
  • デバッグする

時間がない人のため

サンプルのアプリ雛形と必要な変更点はこちらから

アプリを作成する

rails new ...

powで起動する

powderを使ってアプリを登録し、起動する

powder link
powder open

gemをインストールする

Gemfileに以下を追記して、bundle install

group :development, :test do
  gem 'ruby-debug-ide'
  gem 'debase'
end

設定ファイルを記載する

プロジェクトルートに.powenvファイルを作成

export RUBY_DEBUG_PORT=8090
export POW_WORKERS=1

ポート番号はお好みで

次に、config/initializers/remote_debugger.rbファイルを作成

if ENV['RUBY_DEBUG_PORT']
  require 'ruby-debug-ide'
  Debugger.start_server nil, ENV['RUBY_DEBUG_PORT'].to_i
end

RubyMineを設定する

ツールバーからRun → Edit Configurationsを開く

表示されたウィンドウの左上の+ボタンからRuby remote debugをクリック

以下の設定を記述してApplyボタンをクリック

項目 指定する値
Name 好きな名前
Remote port .powenvに指定したポート番号
Remote root folder アプリケーションのルートパス

デバッグする

事前にbundle installを完了させておき、powを再起動する

powder restart
powder open

powは一定時間アクセスがないと自動でプロセスが落ちる為、必ずデバッグ前にpowder openでアプリを立ち上げる必要がある。

デバッグしたい場所の行番号の横をクリックし、デバッグポイントをおく

ツールバーのRun → Debugをクリックする

先ほど作成したデバッグ設定のNameで指定したやつをクリックする

クリックするとRubyMineの下部にデバッグコンソールが表示される。この状態でデバッグポインタをおいたページにアクセスするとデバッグができる。