Rubyのpry-byebugを使いこなす!7つの方法

Rubyのpry-byebugを使いこなす!7つの方法
貝原 輝昌
書いた人 貝原 輝昌

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

今日は、Rubyのpry-byebugについて解説したいと思います。

pry-byebugというと、

  • pry-byebugのインストール方法がよくわからない!
  • pry-byebugのデバッグ用のコマンドはどう使えばいいの?

と疑問に思う方もたくさんいらっしゃると思います。

そこで!今回は、

  • pry-byebugのインストールについてまとめ
  • pry-byebugのデバッグ用コマンドについてまとめ

の解説をしていきたいと思います。

それでは、行って見ましょう!

Rubyのpry-byebugをインストールする方法

Mac/Linuxにpry-byebugをインストールする方法

pry-byebugをMacやLinuxにインストールするには、gemを使ってインストールします。

Winowsにpry-byebugをインストールする方法

pry-byebugをWindowsにインストールする場合は、最新版のRubyInstallerのrubyには、pry-byebugが対応していない場合があり、注意が必要です。

もし、pry-byebugをWindowsにインストールする際にエラーが発生した場合は、RubyInstallerのバージョンを下げて試してみてください。

なお、筆者のところでは、RubyInstaller v2.3.3 ではpry-byebugはインストールできず、RubyInstaller v2.0.0にしたら、pry-byebugがインストールできました。

ただし、RubyInstaller v2.0.0 のSSL証明書が問題でruby自体のインストールができないため、以下に回避方法を載せています。

RubyInstallerのダウンロードとインストール:
UR+:http://www.rubylife.jp/install/install/index1.html

古いRubyInstallerのSSL証明書問題を回避する方法:
URL:http://qiita.com/shimoju/items/394818b4989b94680aaf

DevKitのインストール:
URL:http://www.rubylife.jp/railsinstall/rails/index4.html

後は、Windowsでも、gemで、

するだけです。

readlineが問題でpry-byebugがインストールできない場合

まれに、readlineがインストールされていないことが原因で、pry-byebugがインストールできない場合があります。

その場合は、rb-readlineをpry-byebugより先にgemでインストールします。
URL:http://qiita.com/KanakoKobayashi/items/32bf91437bc1de1a779a

Rubyのpry-byebugでデバッグする方法

ブレークポイントをセットし、デバッグモードにする方法

pry-byebugを起動して、rubyのコードをデバッグモードにするには、コードの中に、

binding.pry

を記述しておきます。

その後、上のスプリクトを実行すると、binding.pryのところで処理が止まって、pry-byebugが起動します。

[1] pry(main)>

のところに、pry-byebugのデバッグ用コマンドを指定できます。

デバッグモード時にブレークポイントをセットする方法

デバッグモード時に、好きが行にブレークポイントをセットするには、以下のようにpry-byebugのコマンドプロンプトにコマンドを指定します。

これで、行11にブレークポイントが設定され、以下のような表示になります。

後は、continueコマンドを実行すれば、処理が進み、先ほど設定した行11で処理がとまります。

変数の中身を見る方法

デバッグモード時は、各種変数の値を確認できます。

pry-byebugのコマンドプロンプトに変数名のみ書いてEnterすると、その変数の中身が表示されます。

上の例では、eatsの中身、"applebakecookie"が表示されていますね。

ステップ実行する方法

ステップイン

デバッグモードで、1行ずつ実行していくことを、ステップ実行といいます。

その中で、ステップインとは、1行ずつ実行するけれども、間に関数があった場合、関数の中に入ってステップ実行を続けるというコマンドです。

ステップインのpry-byebugコマンドは、

step

です。

ここで例に示すサンプルコードは以下の通りです。

実際にpry-byebugでデバッグモードにしてステップインした状態は以下の通りです。

上の例のように、行12でstepコマンドを使うと、関数groupingの中に入って行きますね。

ステップオーバー

ステップオーバーとは、ステップインと異なり、間に関数があっても、その上を飛び越えて次の行に移るステップ実行のことです。

ステップオーバーのpry-byebugのコマンドは、

next

です。

上の例のように、関数groupingをオーバーして、次の行13に進んでいますね。

ステップアウト

ステップアウトとは、ステップインして関数の中に入ってステップ実行している際に、関数の外に出たところまで、実行を移すコマンドのことです。

ステップインする必要がなくなった際に、関数から素早く抜け出る際に使用します。

pry-byebugのステップアウトのコマンドは、

fininsh

です。

上の例では、関数groupingの中でfinishコマンドを使って、関数を抜け出ています。
そして、行13のところで、実行が止まっています。

スタックフレームを移動する方法

ステップ実行と重なりますが、関数の呼び出し階層のことをスタックフレームと言います。

関数呼び出しがあると必ず、1つのスタックフレームが積まれます。

pry-byebugでは、このスタックフレームを元に戻して上の階層に戻ったり(up)、下の階層に潜ったり(down)、自由に移動できます。

サンプルコードは以下の通りです。

pry-byebugを使って、スタックフレームを移動する様子は以下の通りです。

上の例のように、upとdownで関数の呼び出し階層を移動できていますね。

まとめ

いかがでしたでしょうか。

pry-byebugのインストールは、gemを使えば、比較的容易に行うことができましたね。
pry-byebugは非常に使えるパッケージですので、これを機会に皆さんも導入を検討して頂ければ幸いです。

pry-byebugの解説では、デバッグモードに入るブレークポイントの設定方法、行を指定してのブレークポイントの設定方法変数の中身を見る方法を解説してきました。

コードを動かしながら変数の中身を確認できればデバッグもスムーズに行きますね。

ステップイン、ステップオーバー、ステップアウトなどのステップ実行コマンドも、デバッグでは必須になってくる重要なテクニックです。

また、関数の呼び出し階層(スタックフレーム)を自由に移動できるup、downコマンドもかなり便利です。移動した階層で変数の中身を表示すれば、どこでどの変数の値がおかしいのかわかり、デバッグも進みますね。

以上のように、pry-byebugは、とてもデバッグに重宝するツールですので、ぜひ、ここで覚えられておいてください。

pry-byebugのことを忘れてしまったら、またこのページをご覧になってください!

Rubyカリキュラム無料公開中!
この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


Rubyを最短で習得したい方へ
近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」
このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a1

学習者インタビュー

人気記事セレクション

エンジニア転職希望者必見

プログラミング学習者必見

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

貝原 輝昌

貝原 輝昌

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