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

[Ruby入門] 02.エディタの準備(Visual Studio Code で Ruby書いてデバッグ)

More than 3 years have passed since last update.

>> 連載の目次は こちら!

参考記事

http://d.hatena.ne.jp/t_tutiya/20170204/1486204880
↓からの
http://dev.classmethod.jp/tool/visual-studio-code-ruby-debug/
http://d.hatena.ne.jp/deko2369/20160611/1465653006

手順

1. Visual Studio Code をインストールしておく

2. Rubyの拡張をインストール

[Visual Studio Code 上の作業]

左の「拡張機能」ボタンを押して、検索キーワードに "Ruby" と入れると、検索結果トップに、

Provides Ruby language and debugging support for Visual Studio Code

というのが出てくるので、これをインストールする。

3. Rubyのスクリプトを用意

[Visual Studio Code 上の作業]

①左の「エクスプローラー」ボタンを押してエクスプローラーを開き、「フォルダーを開く」で、Finderから操作。適宜、新規フォルダを作成。

②エクスプローラー上のフォルダー名の右の「新しいファイル」をクリックして、新規ファイルを作成

③とりあえず、以下の内容でRubyスクリプトを作成

/Users/miro/Documents/RubyProjects/MyRuby/test.rb
class Wao
  def hello
    puts 'Ya'
  end
end

wao = Wao.new
wao.hello

・コード補完が効く
・メソッドや変数を Command+クリック(またはFn+F12) すると、定義箇所にジャンプする

4. デバッグ用のGemを入れる

[ターミナルでの作業]

4-0. 概要

  • gem は、Rubyのライブラリのパッケージであり、パッケージ管理ツール(コマンド)でもある。
  • bundler は、gemの互換性とか依存関係なんかも考慮してくれるgem管理ツール(RPMに対するyumみたいなもの?)
  • ここでは Rubyのデバッグをするためのgemである「ruby-debug-ide」と「debase」を入れる

4-1. bundler をインストール

$ gem install bundler
Fetching: bundler-1.14.6.gem (100%)
〜 中略 〜
1 gem installed

4-2. bundler の初期化(Gemfileの生成)

$ bundle init
Writing new Gemfile to /Users/miro/Gemfile

$ cat Gemfile
# frozen_string_literal: true
source "https://rubygems.org"

# gem "rails"

4-3. 上記で生成したGemfile に、インストールしたいGemを追加記述

↓末尾にこの2行を追記

gem "ruby-debug-ide"
gem "debase"

4-4. んでインストール

bundle install

4-5. インストールできたか確認

$ gem list
*** LOCAL GEMS ***
〜 中略 〜
debase (0.2.1)
〜 中略 〜
ruby-debug-ide (0.6.0)

5. Visual Studio Code に戻ってデバッグ設定(launch.json の生成と設定)

①先の手順3で作ったフォルダをVSCodeのエクスプローラーで開いている状態で、左の虫のボタン(デバッグボタン)を押下

②上部の歯車ボタンをクリックし、プルダウンからRubyを選択

③すると launch.json が開く。(存在しない場合は、ここでフォルダ配下に .vscode/launch.json が生成される)

④以下の内容に書き換える

vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Local File",
            "type": "Ruby",
            "request": "launch",
            "program": "${workspaceRoot}/test.rb",  //*1
            // ,"useBundler": true                  //*2
        }
    ]
}

*1 デバッグしたいファイル名
*2 "useBundler" について
「"useBundler": true」を指定せよ、ってなってる情報もあるが、ruby-debug-ide をパス指定で入れている場合のみ必要らしい。なのでここでは指定していない。
(参考URL: http://qiita.com/chimame/items/56e48ab3145312ff1786

6. んで、デバッグしてみる

①デバッグしたいファイルを開いている状態で、左の虫のボタン(デバッグボタン)を押下

②上部の「デバッグコンソール」ボタンを押下して、デバッグコンソールを表示させる

③上部の「デバッグの開始」ボタン(緑の三角ボタン)を押下して実行

④デバッグコンソール に実行結果が表示される

デバッグ操作

  • エディターの各行の一番左の部分をクリックして、ブレークポイントを設定できる
  • ウォッチ式で、任意の変数や、式を実行した場合の値を確認できる

など、通常のIDEのデバッガ機能が使える。

※デバッガのエラー

デバッグすると、2回め以降、以下のようなエラーが出る。

Debugger error: Client: Error: read ECONNRESET

デバッガとの通信がうまくいっていない?と思われるが、あまり情報を見つけられなかった..

デバッグ結果は出力されるので、ひとまずよしとするか(情報求む...)

prgseek
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
ユーザーは見つかりませんでした