Help us understand the problem. What is going on with this article?

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 extension.png

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

デバッグ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": "${workspaceFolder}",
      "program": "${workspaceFolder}/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を設定する
    ahii.png
    ファイルの改行数の左側にクリックすると、breakpointを設定できます。

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

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

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

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

おわりに

いかがでしょうか?
こんな簡単設定でVSCodeでRailsのデバッグは便利になりますね。
それではまた!

linkbal
街コンポータルサイト「machicon JAPAN」やマッチングサービス「CoupLink」などを開発・運営しています。
https://linkbal.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした