Edited at
LinkbalDay 21

Visual Studio CodeでRailsのリモートデバッグ


はじめに

この記事はLinkbal Advent Calendar 2018の21日目の記事です。Rails初心者のタンです。

僕はリンクバルという現在の会社に入る前に、PHPエンジニアでした。

Railsの開発環境を立ち上げたあとに、開発の準備のため最初にやったことはデバッグツールを設定することです。

RailsのデバッガーといえばPryは盛んなものかと思いますが、PHPエンジニアだった僕はまだ慣れていないので、PHPのXdebugみたいなツールがほしかったです。

インターネットで調べた上で、ruby-debug-ideというツールを見つかって、設定してみたら、Xdebugみたいなリモートデバッグ機能が使えました。

今回はこのツールの設定方法について紹介させていただきます。


Rubyプラグインをインストールする

まず、VSCodeでRuby言語を開発するための拡張をインストールする

この拡張の詳細にruby-debug-ideデバッグのツールの設定方法を書いてあります。


デバッグGemをインストールする

RubyバージョンによってGemが違います

Ruby 1.8.xの場合

gem install ruby-debug-ide

gem install ruby-debug-base

Ruby 1.9.xの場合

gem install ruby-debug-ide

gem install ruby-debug-base19x

Ruby 2.xの場合

gem install ruby-debug-ide

gem install debase


VSCodeの設定

VSCodeのデバッグタブを開いて、左側のサイドバーに「Add Configuration」を選択して、もし何もデバッグ設定がなければ選択ポップアップを表示されます。ここにRubyを選択してください。「Ruby」選択肢がなければ、どんな選択肢を選択しても大丈夫です。

launch.jsonを開いたら、configurationsの中に以下の設定を入れてください。

    {

"name": "Debug Rails",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/bin/rails",
"pathToRDebugIDE": "/home/trantan/.rbenv/versions/2.5.1/bin/rdebug-ide",
"args": [

"server"
]
}


  • name: デバッガー名

  • type: プログラム言語(Ruby)

  • request: launchというのはVSCodeから実行する

  • cwd: 作業のディレクトリ

  • program: デバッグを開始する時に実行されるRubyスクリプト(Railsサーバーのデバッグなので、ここにはRailsコマンドです)

  • pathToRDebugIDE: オプションの設定です。(ruby-debug-ide gemのフルパスです)

  • args: 「program」実行するスクリプトの引数です。Railsサーバーをローンチするコマンドはrails serverなので、serverは引数です。もしホストや環境などというコマンドのオプションを追加する場合、ここに追加してください。

↑こちらは基本の設定です。

詳しい設定はこちらに参考してください。


デバッグしてみる


  • まず、デバッグのbreakpointを設定する




    ファイルの改行数の左側にクリックすると、breakpointを設定できます。

  • 次、VSCodeのデバッグタブで左側のサイドバーに上の「Debug Rails」を選択して、「スタート」ボタンを押すと、デバッガーを開始します。



ブラウザーでRailsのWebアプリを開いたら、デバッグできます。

デバッガーのリモートパネルです。

左側の「Variables」部分に変数の値をチェックできます。


おわりに

いかがでしょうか?

こんな簡単設定でVSCodeでRailsのデバッグは便利になりますね。

それではまた!