結論
1. 以下の二つの gem をインストールします
ruby-debug-ide
debase
Gemfile
に書く場合は development
環境の部分に書きます*1。
2. VSCode の デバッグメニュー で「歯車」アイコンをクリックし「環境の選択」から「Ruby」を選びます
Ruby
が選択肢に出てこない場合は適当な.rb
ファイルを一つ開いておきます
3. さらにその次の選択肢で「Rails server」あたりを選びます(何でもよい)
- 設定ファイルのベースとなる内容を選択するところなので、後から編集する限りは何を選んでもいいです
4. .vscode/launch.json というファイルが作られますので編集します
- このファイルが最大のキモです
- 最低限に動くならば以下の内容でいいです*2
- ただし、
bundler
を用いて「1.」の gem を実行する場合は"useBundler": true
の行の追加が必須です - また、
"showDebuggerOutput": true
は追記してもいいかなと思います(無くても動きます)
- ただし、
{ "version": "0.2.0", "configurations": [ { "name": "NAMAE WO IRERU TOKORO", "type": "Ruby", "request": "launch", "program": "${workspaceRoot}/bin/rails", "args": [ "server" ], // "useBundler": true, // "showDebuggerOutput": true, } ] }
- この設定ファイルは奥深いのでドキュメントを一読しておくとよいです
5. ブレークポイントを設定する
- 適当にブレークポイントを設定します
- 一つも設定されていないと Rails のサーバが立ち上がりませんでしたので、もしサーバが立ち上がらない場合は適当にブレークポイントを設定してみてください*3
6. デバッグを開始する(デバッガを起動する)
- 「▷」ボタンを押してデバッガを起動します
- 起動に成功するとステータスバーの色が赤くなります*4
- 「デバッグコンソール」にて Rails サーバが起動されています
7. Rails アプリにアクセスしてデバッグを開始する
- ブレークポイントなどを設定して
http://localhost:3000
などのローカルサーバにアクセスしてデバッグを開始しましょう - VSCode のデバッガの詳しい説明は別途調べてみて下さい
ハマったところ
- ブレークポイントが一つも設定されていないと Rails サーバ が起動しない
- ブレークポイントが設定されていないと
Fast Debugger (ruby-debug-ide 0.7.0, debase 0.2.3, file filtering is supported) listens on 127.0.0.1:1234
から先に進まず、サーバが起動しませんでした
- ブレークポイントが設定されていないと
rdebug-ide
コマンドの実行は不要- Web 上のいくつかの記事ではコンソールから
rdebug-ide
コマンドを用いてデバッグサーバを立ち上げるように書いてありますが、VSCode 側がやってくれるのでこれは不要です
- Web 上のいくつかの記事ではコンソールから
ruby-debug-ide
およびdebase
をGemfile
に書いて使う場合はlaunch.json
内に”useBundler": true
を書く必要がある- エラーメッセージが出るので原因はわかるのですが、解決方法として
”useBundler": true
をlaunch.json
に書くというのはプチハマりしました
- エラーメッセージが出るので原因はわかるのですが、解決方法として
注意点
- この記事の内容は macOS 上で実行した内容です
- プロジェクト配下に
.vscode/launch.json
が作られるので.gitignore
に.vscode/
を記載します*5- ユーザローカルの
~/.vscode
配下にlaunch.json
を置いても期待通りに動かなかったので、プロジェクト直下に置くしか無いのだと思います*6
- ユーザローカルの
- サーバが
WEBrick
ですが、特に本質的な問題ではないと思うので気にしないままでいます