プログラミング

[初心者向け]VisualStudioデバッグ方法(プログラムが正しく動作しない時に)

Visual Studio のデバッグ方法を紹介します。

画像は、Visual Studio 2022ですが、他のバージョンもアイコンが違う程度でほぼ同じです。

初心者向け Visual Studio 2022 インストール/ビルド/実行方法Windowsのプログラミングで必要な『Visual Studio 2022』の紹介です。 Visual Studio は、Win...

デバッグとは(デバッガとは)

デバッグとは、プログラム内のバグ(問題)を見つけて修正する作業です。

プログラムが正常に動かない場合には、バグがあります。
そのバグを見つけることが、「デバッグ」です。

デバッグのためにツールをデバッガと呼びます。

Visual Studio の場合は、総合開発環境(IDE)にソースコードを編集するエディタ、コンパイラ、デバッガが一体化しているのでデバッガ自体を意識する必要はありません。

デバッグ方法

デバッガには以下が必要なので、順番に説明します。

デバッグするための準備は? デバッグ版のビルド方法
ソースのどこを通過した? ステップ実行
確認したいところで一時停止したい ブレークポイント
変数の値は? 変数のウォッチ

デバッグ版でビルド

以下が、「Debug」 になっているかを確認します。

VisualStudioデバッグ

「Debug」 になっていない場合は、以下のボタンで切り替えます。

VisualStudioデバッグ

メニューの「ビルド(B)」-「ソリューションのビルド(B)」でプログラムをビルド(コンパイル)します。

VisualStudio デバッグ版ビルド

[出力]ウィンドウにビルド結果が下部に表示され、正常終了となっていることを確認してください。
「1 正常終了」となっていること。


エラーの場合は、エラーメッセージが出力されます。
ソースコードを修正してエラーがない状態にしましょう。

実行(デバッグの開始)

デバッグを開始するには
[F5]キーを押すか、以下の「ローカルWindowsデバッガー」ボタンを押すと実行されます。

ソース変更後にビルドを忘れていても、ソース変更後にビルドしていない場合は実行前にビルドされます。

次に説明するブレークポイントなど設定していない場合は、プログラムが最後まで実行されてプログラムは終了します。

ブレークポイントを設定する

ブレークポイントを設定していると、デバッグモードでプログラムを動かした時にブレークポイントの設定箇所でプログラムが一時停止します。

止まっている場所で変数の値などが問題ないかを確認します。
ブレークポイントは、複数の箇所に設定できます。

■ブレークポイントの設定方法
ソースコードの表示画面の行の左端をマウスを移動すると丸いアイコンが表示されます。
マウスを左クリックするとブレークポイントが設定されます

[F9]キーでもカーソル行に設定可能です。

設定前は、グレー色で設定後に赤になります。

VisualStudioブレークポイント

設定すると赤い丸(●)になります。
もう一度クリックすると消えます。(無効になります)

VisualStudioブレークポイント

デバッグ実行するとブレークポイントを設定した場所で一時停止します。
黄色の矢印アイコンが停止している位置を表します。

[F5]キーで継続実行できます。

ステップ実行(1行ずつ実行)

プログラムを1行ずつ進めて、どこを通過しているかを確認できます。

デバッグを実行する時に使用するアイコンの右側にあります。


左から、ステップイン、ステップオーバ、ステップアウトです。

慣れてくるとマウスではなく、キーを押したほうが早いです。
[F10] -> [F10] -> [F10] で1行ずつ進めて、[F11]でステップインでメソッド(関数)に入り、確認するなど。

ステップイン(F11) 次の1文を実行。次の1文にメソッド(関数)がある場合、メソッドの中に入ります。
ステップオーバー(F10) 次の1文を実行。次の1文にメソッド(関数)があっても、メソッドの中に入りません。
ステップアウト(Shift+F11) 今実行中のメソッド(関数)の実行を終えて、呼び出し元へ戻ります

変数の値を確認

変数の上にマウスのカーソルを持って行くと変数の中身を確認できます。
以下は、変数str3の値が”123xyz”となっています

VisualStudio変数表示

わざわざマウスを変数に移動させなくても、左下の
[自動] ウィンドウか[ローカル] ウィンドウにVisualStudioが自動で表示しています。
直接、変数の値を見たい場合などにマウスを当てて確認します。

VisualStudio変数自動表示

ウォッチ式を設定する

[ウォッチ]ウィンドウに値を確認したい変数のみを指定可能です。

特定の変数をずっと表示しておきたい場合などに利用します。

変数str3を追加した画面です。

VisualStudio-ウォッチウィンドウ

呼び出し履歴を調べる

メソッド(関数)がどこから呼び出されたかを確認する場合に使えるのが
[呼び出し履歴]ウィンドウです。

下図の例では、[呼び出し履歴]ウィンドウで、funcA()がどこの関数から呼び出されたが分かります。

VisualStudio-呼び出し履歴

また、[呼び出し履歴]ウィンドウで行をクリックすると、呼び出したソース行が表示されます。

TIPS

各ウィンドウの文字サイズを変更する

ウィンドウによって、デフォルトの文字サイズが小さい場合があるので以下でフォントサイズを変更可能です。

“呼び出し履歴ウィンドウ” のフォントサイズの変更する場合です。

メニュー[ツール(T)] – [オプション(O)] – [環境] – [フォントおよび色]を選択し、
“設定の表示(T)”で設定したいウィンドウを選択します。

以下は”呼び出し履歴ウィンドウ” のフォントサイズの変更画面です。

私は、以下の3つのフォントサイズが9で小さかったので12に変更しました。

・自動変数ウィンドウ
・呼び出し履歴ウィンドウ
・ローカルウィンドウ

まとめ

Visual Studio のデバッグ方法を紹介しました。

記事の内容を使いこなせると学生の課題程度なら困らないと思います。

社会人なら今回の基本を習得し、もっと複雑な機能を使いこなせるようになればいいと思います。

初心者向け Visual Studio 2022 インストール/ビルド/実行方法Windowsのプログラミングで必要な『Visual Studio 2022』の紹介です。 Visual Studio は、Win...