できるRubyプログラマになるためのデバッグ手法7選

できるRubyプログラマになるためのデバッグ手法7選

こんにちは!Webコーダー・プログラマーの貝原(@touhicomu)です。

今日はRubyデバッグを行う方法について解説したいと思います。

この記事では、

  • puts、p、ppを使ったデバッグ方法
  • loggerを使ったデバッグ方法

という基本的な内容から、

  • Rubyのpry-debugでデバッグ実行する方法
  • Ruby On Rails でデバッグする方法
  • RubyをIDEでデバッグする方法

などの応用的な使い方に関しても学習していきます。

このページで、Rubyデバッグ、logger、pry、Railsの使い方をよく把握して自分のスキルとしていきましょう!

Rubyの基本的なデバッグ方法

puts、p、ppを使ったデバッグ方法

Rubyでデバッグを行う際、基本的な手法として用いるメソッドにputsやp、ppなどがあります。

まず、putsを見てきましょう。

putsは引数の文字列を画面に出力するメソッドです。

主に変数値の確認を行います。

引数が文字列である必要があるため、to_sメソッドが必要です。

実行結果:

以上のように、putsメソッドで変数の値を画面に出力できました。

また、putsの引数は文字列である必要があるため、to_sメソッドを使用します。

次に、pとppメソッドを使用してみましょう。

pは引数のオブジェクトを表示します。

ppはpretty pの略で、pよりも読みやすくオブジェクトを表示します。

以下、サンプルコードで確認してみましょう。

実行結果:

以上のように、pは引数のオブジェクトをユーザーの見やすさという点を気にせずそのまま表示します。

ppは引数のオブジェクトをユーザーの見やすさを考慮して表示します。

Rubyのputs、p、ppやprintfなどの表示系のメソッドについて詳しくは、以下の記事を参照してください。

【Ruby入門】print puts p printf 出力メソッドを極める!
更新日 : 2019年7月31日

loggerを使ったデバッグ方法

Rubyのloggerを使えば、Rubyプログラムの実行時に、実行と同時に変数値をログファイルに残すことができます。

ログには出力レベルがあり、Rubyの実行時に最大出力レベルを選択できます。

実行結果(’loglevel.log’):

以上のように、Rubyの実行時にログを出力できました。

Rubyのログ出力、およびloggerについて詳しくは、以下の記事を参照してください。

【Ruby入門】loggerの使い方まとめ
更新日 : 2017年9月25日

Rubyの応用的なデバッグ方法

Rubyのpry-debugでデバッグ実行する方法

Rubyのコマンドライン上でのデバッガとして、pry-byebugがあります。

コマンドライン上でデバッグモードになり、そこからデバッグが可能です。

pry-byebugは、コマンドラインから手軽に起動できます。

また、Rubyのソースコードにpry-byebugのブレークポイントを挿入して実行すると自動的にpry-byebugを起動できます。

この手軽さと、充実したデバッグ機能のため、pry-byebugが一番よく使われるRubyのデバッガです。

できるRubyプログラマになるためには、pry-byebugは必須の技術になってきます。

pry-byebugはブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの多くのデバッガとしての機能を備えています。

全てがCLIでの操作でデバッグが完結します。またTABキーを押すことによりデバッグ用コマンドを補完する機能もあり、使い勝手も良いです。

pry-byebugについては、下記記事をご参照ください。

Rubyのpry-byebugを使いこなす!7つの方法
更新日 : 2019年6月12日

Ruby On Rails でデバッグする方法

loggerを使う方法

Railsでもloggerを使用できます。

loggerは

・config/application.rb
・config/evironments/development.rb
・config/evironments/production.rb
・config/evironments/test.rb

のいずれかの初期設定ファイルであればconfig.〇〇〜で始まるコードで設定できます。

これらconfigファイル内で、

もしくは、

のコードを書くことで、loggerを設定できます。

ログを書くには、以下のようなコードを書きます。

Railsのloggerについて詳しくは、以下の記事を参照してください。

【Rails入門】loggerの使い方まとめ
更新日 : 2017年6月30日

pry-bydebugを使う方法

Rubyのデバッグ時にpryを使用したのと同じように、Railsのコンソール(console)でもpryを使用できます。

pryはRailsでは、ステップ実行やステップインなどの行単位の実行や変数値表示の他、Railsのモデルやルーティング、ミドルウェアにも対応できます。

その他、メソッド検索、ドキュメント参照、カレントディレクトリ移動(cd)やls、TABキーでのコード補完にも対応しています。

Railsでのpryの使い方について詳しくは、以下の記事を参照してください。

【Rails入門】consoleの使い方まとめ
更新日 : 2019年5月20日

RubyをIDEでデバッグする方法

Eclipseでデバッグする方法

Eclipseとは、IBMが制作しその後オープンソースとして公開した、Javaで作られた汎用IDEです。

ブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの機能はもちろん使えます。

EclipseはRubyにも対応しており、これを使うとIDEを使ってRubyをデバッグできます。

GUIでデバッグできるため、大変重宝します。

参考サイト:
WindowsでEclipse+Ruby | FILES=0

VSCodeでデバッグする方法

VSCodeとは、MicrosoftがWindows/Mac/Linux向けに提供しているフリーの高機能エディタです。

起動も軽く、拡張機能も方法で、色々な言語に対応しています。またデバッグにも対応しています。

Eclipseと同じく、ブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの機能を備えています。

VSCodeもRuby拡張機能を追加インストールすることで、RubyのデバッグがGUIで可能になります。

参考サイト:
Visual Studio CodeによるRubyのデバッグ | Developers.IO

Emacsでデバッグする方法

Emacsとは、古くからUNIX/Linux向けに提供されていたフリーの高機能エディタです。

現在は、Max/Linux/Windows向けに提供されています。

もともとコマンドライン上で使用することが多かったエディタで、Unixの思想を受け継いでいるため、若干の癖がありますが、機能は豊富です。

EmacsはRubyのデバッグにも対応しています。

Emacsでも、ブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの機能を備えています。

参考サイト:
Emacsでrubydbを利用してステップ実行する | Futurismo

まとめ

今回は、Rubyデバッグ、logger、pry、Rails について学習しました!

学習のポイントを振り返ってみましょう!

  • 変数値の表示にはputs、p、ppなどが使用できる。
  • loggerによりファイルに変数値を書き込める。
  • pryにより、Rubyを実行しながら変数値などを確認できる。
  • Railsでもpryにより実行中の変数値などを確認できる。
  • IDEでRubyのデバッグをサポートしている製品もある。

以上の内容を再確認し、ぜひ自分のプログラムに生かし学習を進めてください!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

貝原 輝昌

貝原 輝昌

こんにちは!貝原(@touhicomu)と申します。
現在は、Web業界のフリーランスとして、主にPHP/WordPress/BuddyPress/VPSサーバー構築などの業務を受注しています。
現住所は、日本の西海岸、長崎県は波佐見町です。田舎ライフです。^^
地元の観光団体「笑楽井石」にボランティアでほたる撮影会やそば塾などのスタッフとして参加させて頂いています。
以下の活動も行っています。
 ・笑楽井石のブログ
 ・エクセル関数を日本語化するソフト
 ・エクセルVBAを日本語で記述するソフト

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説