64
38

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 3 years have passed since last update.

byebugの導入から使い方まで

Posted at

Railsの勉強の際にデバッグツールは使っていますか?
デバッグツールとは、プログラミングにつきもののデバッグ作業をサポートしてくれるツールのことで、ステップ実行といって一行ごとにプログラムを実行してその時に宣言されている変数の中身をみながら動作を確認する事が出来ます。

それではRailsの開発に使っているbyebugについて紹介していきます。

まずはbyebugのgemをインストールして、デバックしたいコードに「byebug」というメソッドを仕込んでおくと、プログラムがそこを通過した時に止まり、デバッグモードが開始、対話形式でコマンドを打ち込んでおくと自由にメソッドを実行したり変数の値を確認したり出来ます。

インストール方法

インストールはGemfaileに

gem 'byebug'

を追記するだけです。 (railsをインストールしている場合はデフォルトでインストールされています)

追記したら

bundle install

でgemをインストールしてきます。

byebugの使い方

まずbyebugを開始するには、デバッグをしたいところにbyebugというメソッドを書いて上げます。
(今回の場所は例となります。)

スクリーンショット 2020-09-03 10.44.03.png

今回はstatic_pages/homeページの部分にbyebugを挿入してみます。

byebugを挟み込んだら、実際にメソッドを叩いてみます。

スクリーンショット 2020-09-03 10.45.14.png

このように処理が止まり入力プロンプトが出てきます。
ここでnextを入力してEnterを押すと

スクリーンショット 2020-09-03 10.46.37.png

次の行に移動しました。ここでhelpメソッドを調べる為に入力してEnterを押すと

スクリーンショット 2020-09-03 10.48.24.png

helpの中身を確認する事が出来ます。(変数の中身も見れます)
実際のデバッグ作業ではこのように変数の値やメソッドを実行してみて、期待通りの動きをしているかを確認していきます。

よく使うコマンド一覧

next       一行進む
continue   次のブレイクポイントに進む
step       メソッドの内部にステップインする
list       ソースコードを表示する
up         ソースコードの上を表示する
down       ソースコードの下を表示する

他にも使ってみたいコマンドがあればhelpを入力すると表示されるので確認してみて下さい♪

ここまで覚えてしまえば、あとは実際に書いてみて慣れるのが一番早いと思います。

まとめ

byebugの紹介をしましたが、いかがでしたでしょうか?
byebugではそれぞれの変数の型も見れるのでブラックボックス化しがちなプログラミングの細かいところを見れるようになり、開発スピードの高速化と一石二鳥です。

慣れればとても使えるツールだと思うのでぜひ使ってみてください♪

駆け出しエンジニアなので間違っている部分やわかりにくい点などあるかと思います。
その場合はコメントなど入れていただけるとこれからの成長につながりますのでよろしければお願いします。
【LGTM】を押していただけると飛び跳ねて喜びます。
Twitteの方でも呟いたりしておりますのでもしよろしければ遊びにきてください♪

64
38
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
64
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?