14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VScodeでRailsをデバッグする

Last updated at Posted at 2019-10-08

経緯

  • VScodeでRailsアプリケーションをdebugしたくなった
  • 便利だから(たぶん)
  • ちなみに僕のVScodeは日本語になっているのでよしなに解釈してください

設定

プラグインのインストール

  • ということでVScodeでRubyをインストールしましょう
スクリーンショット 2019-10-08 9.51.45.png

gemのインストール

  • 次は必要になるgemをインストールします
$ gem install ruby-debug-ide
$ gem install debase

構成の追加

  • ポチッと構成の追加をクリックします
スクリーンショット 2019-10-08 9.55.59.png
  • Rubyを選択(あるはず)
  • launch.jsonが作成されるはずなので中身をこんな感じにします
.vscode/launch.json
{
  "version": "0.2.0",
  "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"
      ]
    }
  ]
}

matches multiple schemas when only one must validate

実はちょこっとエラーが出てました。
matches multiple schemas when only one must validate が発生するのですが、VScodeを再起動をすると消えました。なんだったんだろう。

実行

  • あとは実行するだけです
  • 左側のサイドバーにDebug Railsがあると思うのでそれをポチっとしましょう
スクリーンショット 2019-10-08 14.30.15.png
  • そうすると、Railsサーバーが立ち上がりデバッグコンソールにババーッと何かが表示されると思います
スクリーンショット 2019-10-08 14.45.00.png

ブレークポイントを貼る

  • もちろん実行するだけでは分からないのでブレークポイントを貼って処理を止めます
  • ババーッと処理している何かしらのファイルに貼りましょう
  • コントローラー辺りにしますか
  • 数字の左脇辺りをポチッと押すとそこで処理が止まってくれます
スクリーンショット 2019-10-08 14.48.12.png

あとはサイドバーをみる

  • どんな値を持っているかとかスタックがどうなっているのかが左サイドバーに出ます(設定がデフォルトなら)
  • どこにブレークポイントを貼ったのかも分かります
  • 他にも何かあると思いますが割愛しますm(_ _)m

結論

  • 意外と簡単に設定できるのでぜひデバッグをやってみてください
  • 便利!!!!

参考

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?