そうだ デバッグ機能、使おう
こんにちは、株式会社フィラメント、プログラマーの西です。
入社してから1年が経ち、デバッグの最中に見つけた細かい不具合を修正するために、プログラムを変更する機会も多くなってきました。そのため、プログラムの内容を理解する必要性が、一層高くなってきました。今回はその際にとても重宝している、デバッグ機能について書いてみようと思います。
デバッグにおいて最も使用するのがVisual Studioのデバッグ機能です。
このデバッグ機能を使うことで、プログラムを実行したまま、ゲーム内の数値やデータ、さらにプログラムの処理順まで確認することができます。例えば、通常のプレイでは見えない、敵の攻撃力やHP値、次の行動が確認できるため、大変わかりやすく、バグも見つけやすいです。
使い方を簡単にまとめます。最初にプログラムの処理を確認したい箇所にブレークポイント(一時停止箇所)を置き、実際にプログラムを起動させると処理がブレークポイントにたどり着いた時点で一時停止し、値や処理の確認ができるようになります。
では、実際にどのように使っているのか、不具合を発見する工程を書こうと思います。今回は自分が適当に用意したプログラムを使わせていただきます。
用意したのは「Zキーが押されたらランダムに固定ダメージが選出されるプログラム」です。実際に動かすとエラーが発生するので調べてみます。
まず、プログラムの怪しい箇所にブレークポイントを設置して、起動!
プログラムがポイントに着くと自動的に一時停止します。
F11を押すことで次の処理に移行します。
すると、次に処理される関数がフォーカスされます。
エラーはここで発生しているようです。試しに変数randにポインタを重ねると値に”4″と表示されています。今回の配列は0~3の範囲内で指定する必要があるので
これは範囲外参照でエラーになってしまいます。
このような流れで不具合の原因を特定し、バグレポートの作成を行ったり、自分でも対応が可能な内容であれば担当者の代わりに修正をおこなったりしています。
MicrosoftのVisual Studioについては様々な機能があるので、継続して勉強し、作業の効率化に努めていきたいです。