輝昌2017/4/172019/6/12こんにちは!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を使ってインストールします。pry-byebugWinowsにpry-byebugをインストールする方法pry-byebugをWindowsにインストールする場合は、最新版のRubyInstallerのrubyには、pry-byebugが対応していない場合があり、注意が必要です。pry-byebugをWindowsにインストールする際にエラーが発生した場合は、RubyInstallerのバージョンを下げて試してみてください。v2.0.0にしたら、pry-byebugがインストールできました。SSL証明書が問題でruby自体のインストールができないため、以下に回避方法を載せています。pry-byebugするだけです。readlineが問題でpry-byebugがインストールできない場合まれに、readlineがインストールされていないことが原因で、pry-byebugがインストールできない場合があります。その場合は、rb-readlineをpry-byebugより先にgemでインストールします。pry-byebugRubyのpry-byebugでデバッグする方法ブレークポイントをセットし、デバッグモードにする方法pry-byebugを起動して、rubyのコードをデバッグモードにするには、コードの中に、「binding.pry」を記述しておきます。msgその後、上のスプリクトを実行すると、binding.pryのところで処理が止まって、pry-byebugが起動します。pry(main)>のところに、pry-byebugのデバッグ用コマンドを指定できます。デバッグモード時にブレークポイントをセットする方法デバッグモード時に、好きが行にブレークポイントをセットするには、以下のようにpry-byebugのコマンドプロンプトにコマンドを指定します。11これで、行11にブレークポイントが設定され、以下のような表示になります。msg後は、continueコマンドを実行すれば、処理が進み、先ほど設定した行11で処理がとまります。pry(main)>変数の中身を見る方法デバッグモード時は、各種変数の値を確認できます。pry-byebugのコマンドプロンプトに変数名のみ書いてEnterすると、その変数の中身が表示されます。pry(main)>上の例では、eatsの中身、"applebakecookie"が表示されていますね。ステップ実行する方法ステップインデバッグモードで、1行ずつ実行していくことを、ステップ実行といいます。その中で、ステップインとは、1行ずつ実行するけれども、間に関数があった場合、関数の中に入ってステップ実行を続けるというコマンドです。ステップインのpry-byebugコマンドは、「step」です。ここで例に示すサンプルコードは以下の通りです。msg実際にpry-byebugでデバッグモードにしてステップインした状態は以下の通りです。pry(main)>上の例のように、行12でstepコマンドを使うと、関数groupingの中に入って行きますね。ステップオーバーステップオーバーとは、ステップインと異なり、間に関数があっても、その上を飛び越えて次の行に移るステップ実行のことです。ステップオーバーのpry-byebugのコマンドは、「next」です。pry(main)>上の例のように、関数groupingをオーバーして、次の行13に進んでいますね。ステップアウトステップアウトとは、ステップインして関数の中に入ってステップ実行している際に、関数の外に出たところまで、実行を移すコマンドのことです。ステップインする必要がなくなった際に、関数から素早く抜け出る際に使用します。pry-byebugのステップアウトのコマンドは、「fininsh」です。pry(main)>上の例では、関数groupingの中でfinishコマンドを使って、関数を抜け出ています。行13のところで、実行が止まっています。スタックフレームを移動する方法ステップ実行と重なりますが、関数の呼び出し階層のことをスタックフレームと言います。関数呼び出しがあると必ず、1つのスタックフレームが積まれます。pry-byebugでは、このスタックフレームを元に戻して上の階層に戻ったり(up)、下の階層に潜ったり(down)<、自由に移動できます。サンプルコードは以下の通りです。msgpry-byebugを使って、スタックフレームを移動する様子は以下の通りです。pry(main)>上の例のように、upとdownで関数の呼び出し階層を移動できていますね。まとめいかがでしたか。pry-byebugのインストールは、gemを使えば、比較的容易に行うことができましたね。pry-byebugは非常に使えるパッケージですので、これを機会に皆さんも導入を検討して頂ければ幸いです。pry-byebugの解説では、デバッグモードに入るブレークポイントの設定方法、行を指定してのブレークポイントの設定方法、変数の中身を見る方法を解説してきました。コードを動かしながら変数の中身を確認できればデバッグもスムーズに行きますね。ステップイン、ステップオーバー、ステップアウトなどのステップ実行コマンドも、デバッグでは必須になってくる重要なテクニックです。関数の呼び出し階層(スタックフレーム)を自由に移動できるup、downコマンドもかなり便利です。移動した階層で変数の中身を表示すれば、どこでどの変数の値がおかしいのかわかり、デバッグも進みますね。以上のように、pry-byebugはとてもデバッグに重宝するツールですので、ぜひ、ここで覚えられておいてください。pry-byebugのことを忘れてしまったら、またこのページをご覧になってください!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。輝昌こんにちは!貝原(@touhicomu)と申します。現在は、Web業界のフリーランスとして、主にPHP/WordPress/BuddyPress/VPSサーバー構築などの業務を受注しています。現住所は、日本の西海岸、長崎県は波佐見町です。ボランティアでほたる撮影会やそば塾などのスタッフとして参加させて頂いています。以下の活動も行っています。