技術系

デバッグ機能の使い方 デバッグ機能を活用して開発効率を上げよう!

どうも。ひろです。

駆け出しエンジニアの皆さんエディタのデバッグ機能は使っていますか?

デバッグを活用できるようになると開発がスムーズに進みます。

デバッグはエラーが出たときにどこまで処理が来ているかどうか確かめるのでも使えますし、ユニットテストをする際にパラメータを変更するときにも使用できます。

もう一つの方法としては動的解析をする際にも使用します。メソッドを呼び出して呼び出し先のメソッドがどのような処理をしているのか確認するときにデバッグ機能を使うことでスムーズに解析することができます。

今回はデバッグで何をやるか記事にしていきます。

そもそもデバッグとは?

簡潔にいうとバグの原因を探してバグを取り除く作業のことを指します。または、プルグラムに限らず原因不明で何かおかしいなどの状況に対する原因の調査や原因不明の問題を解消することをデバッグという場合もあります。

エディタにデバッグ機能がついているものは気軽にデバッグすることができます。

僕が使っているVisual Studio Codeはデバッグ機能があるのでその機能を活用してエラーやバグを発見した時には変数の中身をみたり、処理の流れを把握しています。

エラーが出たときにどこの処理で止まっているのか確認

以下の画像をご覧ください。Python3で無理やりエラーを発生させています。

行数の横についている赤いマークがブレークポイントと呼ばれるものになります。

このブレークポイントがあるところで処理は止まります。この止まった場所までに入っている変数の値を確認します。

左のLocalsという欄に変数a,bに入っている値が表示されています。

ここでちゃんと指定した値が入っていることを確認します。

この処理を進めていくとc = a + bとありますが、aが数値でbが文字列なので足し算ができずエラーが出ていることがわかります。

実行してみてエラーが出たときはそのエラーが発生している手前までの処理を確認することでどこに問題があるか切り分けることができます。

ユニットテストの際に変数のパラメータを自在に操る

以下の画像の画像のbの変数をダブルクリックすると変数に入っている値を操作することができます。

操作したあとの画像が以下になります。

変数を自在に入れることでこの値の時はエラー、バグが発生しないという判断をしたりユニットテスト(関数別テスト)ではこの値を編集してテストしたりします。

他人のコードを解析する際にデバッグを使用して処理の流れを動作しながら確認する。

githubとかで既存のコードを持ってきて自分の環境で動作確認ができたとします。

その中でこの処理はどうやってるんだろう?や、この技術はどんなこと使っているのかという時にデバッグ機能を使います。

時間はかかってしまいますが、そのコードが一番初めに処理する場所にブレークポイントを打っておきそこから進めながら自分が解析したいと思っている動作まで進めていきます。

自分が解析したい処理に入ったところで新しくブレークポイント打っておき次にデバッグを開始した時にそこから開始できるようにしておくことで1回目で解析できなかった時でも最初から解析しなくて済むようになります。

他の方のコードを読む際にデバッグ機能を使うことでどのような処理をして機能を実現しているのか学ぶことができるのでぜひ活用して行ってください!

デッバグでやれることのまとめ

エディタのデバッグ機能を使うと以下のことができます。

  • バグが起きている場所の把握ができる
  • ユニットテストで実行中に値を変えてテストすることができる
  • 他の人のコードを解析する際に機能の実装方法を学ぶことができる

エディタのデバッグ機能を使っていないという方もいるのではないかなと思うのでこれから使ってみてください!

最初はどのように解析していけば良いかわからないと思いますが、回数を重ねるごとにだんだんとうまく使いこなせるようになってきますよ!

Visual Studio Codeでのデバッグ機能(Python)の使い方は以下の記事を参考にしてみてください!

ここまで読んでくださりありがとうございました。

合わせて読みたい記事

  • 技術系

アプリ開発の手順【駆け出しエンジニア必見!オリジナルアプリの作成方法を公開します】

インスタンスについて実装例を用いて解説【Python】

 

プログラミングの設計手順を大公開!

インターフェースとは? C++の実装例とインターフェースについて

  • 日常ノウハウ

Trelloでタスク管理することで得られること【進捗管理とタスク管理が楽になる!】

【完璧を目指すあなたへ】とりあえず7割を目指して物づくりをしよう!

目標と目的の違いを理解して自分を成長させる方法【実現できる目標の立て方】

-技術系
-, , , , , ,

Copyright© 日常で感じたことブログ , 2020 All Rights Reserved Powered by AFFINGER5.