🐷

byebugの使い方

2023/08/18に公開

はじめに

byebugを使用することによって以下のようなことができます。
1.任意の場所でプログラムの処理を止められる
2.止めた場所から 1行ずつ動作確認ができる

byebugの使い方

使い方はシンプルでデバッグしたい箇所にbyebug(またはdebugger)と追記するだけです。この状態で処理を実行すると、デバッガーにより当該箇所で処理が停止します。

class ArticlesController < ApplicationController
  def show
    @article = Article.find(params[:id])
    # 以下を追記
    byebug
  end
end

記入後、サイト側でshowページを開くことによって処理がbyebugの時点で停止します。
シェルに変数名を入力し実行することで中身を確認することができます。
また変数名の前にppをつけることで変数の中身が見やすい形式で表示されます。

(byebug) @article.title
"【Rails】Credentialsを使用した機密情報の保護【初学者】"

# 変数の中身を見やすく表示
(byebug) pp @article.tags
[#<Tag:0x00007fbb3bc073a0
  id: 46,
  name: "Ruby",
  created_at: Fri, 02 Apr 2021 15:14:02 JST +09:00,
  updated_at: Fri, 02 Apr 2021 15:14:02 JST +09:00>,
 #<Tag:0x00007fbb3bc072d8
  id: 3,
  name: "Rails",
  created_at: Fri, 13 Dec 2019 17:39:28 JST +09:00,
  updated_at: Fri, 13 Dec 2019 17:39:28 JST +09:00>,
...

byebugは単なるメソッドのため、条件をつけることができます。

class ArticlesController < ApplicationController
  def show
    @article = Article.find(params[:id])
    # 以下を追記
    byebug if @article.draft?
  end
end

これは基本的な使い方で他にも様々な使い方があるみたいです。

よく使うコマンド集

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

参考にさせていただいた記事

https://autovice.jp/articles/155
https://qiita.com/shinpachix/items/b9b8d952570780bfdaa7

まとめ

今日は午前中はレイアウト編集して、午後から用事があったので復習の内容を投稿しました!!
以前メンターさんに使い方を教えてもらったので復習がてらにまとめてみました。
これを使い始めてからエラー処理にかかる時間が圧倒的に減ったのとターミナル注意深く見る癖がついたので、ちょっとずつでも自走力を上げていきたいと思います!

Discussion