質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Ruby on Rails

    7719questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Vagrant

    1254questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • Visual Studio Code

    304questions

    Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

vscodeでvagrant上のrailsアプリがデバッグできない

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,755

jkamiya5

score 6

visual studio codeエディタで、railsアプリのデバッグをしたいのですが、なかなか上手くいきません。
railsアプリは、vagrantのubuntu上で実行しているのですが、vagrantを経由する場合としない場合とで、設定方法の違いがあるのでしょうか?


ホスト側
macOS Sierra バージョン10.12.3

ゲスト側
Ubuntu 14.04.5 LTS・・・64bit
ruby 2.4.0
Rails 5.0.2


①Vagrantfileの設定

Vagrant.configure(2) do |config|
  config.vm.provision :shell, path: '.setup/bootstrap.sh'
  config.vm.synced_folder '.', '/var/www/', owner: 'sample', group: 'sample'

  config.vm.provider 'virtualbox' do |vb|
    config.vm.box = 'ubuntu/trusty64'
    config.vm.network :forwarded_port, guest: 3000, host: 3001, auto_correct: true
    config.vm.network :forwarded_port, guest: 3306, host: 33066, auto_correct: true

    vb.customize ['modifyvm', :id, '--memory', '2048']
  end
end

②launch.jsonの設定

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Local File",
      "type": "Ruby",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "program": "${workspaceRoot}/main.rb",
      "useBundler": true
    },
    {
      "name": "Listen for rdebug-ide",
      "type": "Ruby",
      "request": "attach",
      "cwd": "${workspaceRoot}",
      "remoteHost": "127.0.0.1",
      "remotePort": "1234",
      "remoteWorkspaceRoot": "${workspaceRoot}"
    },
    {
      "name": "Rails server",
      "type": "Ruby",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "program": "${workspaceRoot}/bin/rails",
      "args": [
        "server"
      ]
    }
  ]
}

③ターミナルで実行するコマンド

$ vagrant up
$ vagrant ssh
$ sudo su sample
$ cd /var/www/app
$ bundle exec rdebug-ide --port 1234 --dispatcher-port 26162 script/rails server b '0.0.0.0'
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.1, file filtering is supported) listens on 127.0.0.1:1234


上記の状態でvscodeからデバッグ(「Listen for rdebug-ide」)を実行すると、vscodeのデバッグコンソールに以下が表示されます

Debugger error: Client: Error: connect ECONNREFUSED 127.0.0.1:1234

どなたか対処法をご教授頂けませんでしょうか。。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

bundle exec rdebug-ide --port 1234 --dispatcher-port 26162 script/rails server b '0.0.0.0'
の コマンドの b にハイフンがついてないように見受けます。
付けて実行してください。

追記(2017/04/04)です。
--port 1234 の 前に、--host 0.0.0.0 をつけてみてください。
b '0.0.0.0' は不要です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/04 08:43

    raa0121様

    ご回答ありがとうございます。
    ハイフンをつけて実行したところ、以下のエラーメッセージが出ました。
    vscodeで使えるコマンドではないとか、そういうことでしょうか。。

    Using ruby-debug-base 0.2.1
    Usage: rdebug-ide is supposed to be called from RDT, NetBeans, RubyMine, or
    the IntelliJ IDEA Ruby plugin. The command line interface to
    ruby-debug is rdebug.

    Options:
    -h, --host HOST Host name used for remote debugging
    -p, --port PORT Port used for remote debugging
    --dispatcher-port PORT Port used for multi-process debugging dispatcher
    --evaluation-timeout TIMEOUT evaluation timeout in seconds (default: 10)
    --stop stop when the script is loaded
    -x, --trace turn on line tracing
    -l, --load-mode load mode (experimental)
    -d, --debug Debug self - prints information for debugging ruby-debug itself
    --xml-debug Debug self - sends information <message>s for debugging ruby-debug itself
    -I, --include PATH Add PATH to $LOAD_PATH
    --keep-frame-binding Keep frame bindings
    --disable-int-handler Disables interrupt signal handler
    --rubymine-protocol-extensions
    Enable all RubyMine-specific incompatible protocol extensions
    --catchpoint-deleted-event Enable chatchpointDeleted event
    --value-as-nested-element Allow to pass variable's value as nested element instead of attribute

    Common options:
    -v, --version Show version

    invalid option: -b

    キャンセル

  • 2017/04/04 16:26

    以下のようにして実行しても同じエラーが出ました。

    bundle exec rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 script/rails server

    ちなみに、デバッグではなく「rails server -b '0.0.0.0'」で起動したら、http://localhost:3001/でアクセス可能です。ポートフォワードも上手くいっていると思うんですが、launch.jsonの設定が怪しい気がしています。。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby on Rails

    7719questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Vagrant

    1254questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • Visual Studio Code

    304questions

    Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。