VS codeでRailsのデバッグをやった話

Posted by jolantern on Monday, February 27, 2017

VS CodeでRails

先日Rubyを書く感じの開発環境を整えたけど、よく考えたら私に必要なのはRailsの開発環境なのでは?と思った。 環境をある程度整えたのでメモ。 ちなみに先日の環境はできている前提で書いていく。

launch.jsonの編集

もしかしたらやらなくていいかも。 サイドバーからデバッグツールを開いてあげる。

これね。 そしたらサイドバーの上部に歯車マークが出現して、それをクリックすると、今開いているであろうRailsプロジェクトのルートディレクトリに .vscode というディレクトリがあると思うのだけど、それは以下のlaunch.jsonを開いてくれる。 そこにあるnameセクションが Listen for rdebug-ide の記述がこうなっていれば特にやることはないかも。

        {
            "name": "Listen for rdebug-ide",
            "type": "Ruby",
            "request": "attach",
            "cwd": "${workspaceRoot}",
            "remoteHost": "127.0.0.1",
            "remotePort": "1234",
            "remoteWorkspaceRoot": "${workspaceRoot}"
        },

実行方法

Gemfileに下記を記述してbundleしておく。

gem 'ruby-debug-ide'
gem 'debase'

できたら、VS Codeのターミナルに戻って bundle exec rdebug-ide --host 127.0.0.1 --port 1234 --dispatcher-port 26162 -- bin/rails s を実行してあげる。こうするとrailsが立ち上がるのをrdebug-ideが待ち受けるので

ここのプルダウンで Listen for rdebug-ide を選んで実行ボタンを押してあげる。 すると、VS codeのターミナルでいつものRailsを立ち上げたときの文字たちが流れているはず。

これでデバッガが使えるようになっているので、Eclipseとかのデバッガのようにコードの行番号の左側をクリックしてブレークポイントを置いてあげればそこで処理をストップして、ステップイン実行とかが出来る。 ウォッチ式ってやつは、コード中の変数を選択して右クリックしたら デバッグ:変数をWatch というやつが有るはず。それを選択しておくと変数Watch出来る。 ただし、デバッガが立ち上がってないとWatch式に追加はできない。 名維持的に追加しなくてもサイドバーに有る変数ってところで見れたりはする。

とりあえず、これで使えるようになったのであとはゆくゆく勉強していって、また何かいいことあったら書いておこう。 なおデバッグ環境を整えてもエラーは解消していない。