目次
- VisualStudio とは
- 新規プロジェクト作成
- ビルド
- デバッグ
- 実行・実行終了
- ブレークポイント
- ステップ実行
- 指定行まで実行
- 変数の値を確認
- 例外発生時
- まとめ・参考
C言語/C++ VisualStudio とは
Microsoft がリリースしている C/C++ を含む各種プログラミング言語の統合開發環境。
2014年に Community 版がリリースされ、個人等では無償でフル機能を利用することが出来る。
商用利用可能。最新版は VSC2013。
詳しくは MS の サイト を参照。
新規プロジェクト作成
ファイル(F)>新規作成(N)>プロジェクト(P)... メニュー。または Ctrl + Shift + N
上記を実行すると、下図の「新しいプロジェクト」ダイアログが表示されるので、言語、種別等を選び、プロジェクト名等を入力する。
たとえば、コンソールアプリのプロジェクトを作成したい場合は、下図の様に「Win32 コンソールアプリケーションを選び、 名前を入力し、場合によってはプロジェクトの場所を指定して、【OK】を押す。
【OK】を押すと、下図のように、アプリケーション ウィザード ダイアログが表示される。
デフォルトのままでいいなら、【完了】ボタンを押すとよい。
筆者は、「プリコンパイル済みヘッダー」をONにしていると不可解なことが起きる気がするので、【次へ】を押し、 下記のダイアログで上記オプションをOFFにして、【完了】を押している。
そうすると、コンソールアプリケーションのひな形が作成され、下図のような画面になる。
あとは、ソースコードを編集し、ビルド・実行・テスト・デバッグするだけだ。
※ ちなみに、日本のゲーム業界では単に「動作テスト」を行うことを「デバッグ」と呼んでいるようだが、これは明らかに間違った用語の使い方なので、 即刻やめて欲しいのだが、筆者がいくら言っても改善されることは無いだろうな・・・
ビルド
ビルドするときのオプションとしてデバッグモード・リリースモードってのがあるぞ。
「デバッグモード」とは、その名のとおり、デバッグするときのモードで、プログラムの実行速度が遅い代わりに、途中で止めたり、変数の値を見たりすることが出来るモードだ。
「リリースモード」とは、それとは逆に、プログラムの実行速度は高速になるが、途中で止めたり、変数の値を見たりすることが制限されているモードだ。
プログラムがちゃんと動作するまではデバッグモードでビルド・テスト・デバッグする。
ちゃんと動作するようになったら、リリースモードでビルドし配布するのが普通だ。
デバッグモード・リリースモードを切り替えるには、下図の赤枠の部分のドロップダウンで選択するんだぞ。
ソースコードをビルドし、実行可能な状態にするには、ビルド>ソリューションのビルド メニューを実行するか、または F7 ショートカットキーを押す。
ビルドした結果、ソースコードに誤りがあると、エラーが表示される。エラーが無い場合は、以下のように出力ウィンドウに表示される。
エラーがあった場合は、下図のように出力ウィンドウに表示される。
エラーの箇所にジャンプするには、エラーメッセージ行をダブルクリックするか、F4 を押す。
F4 を再度押すと次のエラー行にジャンプしてくれるので、とても便利だ。
エラーが大量に出た場合は、最初のエラーから順に見ていくようにしよう。最後の方は最初のエラーの副作用みたいな場合があり、 その部分は何も間違っていないのにエラーと表示さえる場合があるからだ。
下図の様に、エラー一覧ウィンドウで、エラー出力だけを見ることができる。
出力ウィンドウと同じで、ダブルクリックでエラーが発生した行にジャンプすることができるし、F4 も有効だぞ。
また、上部の「警告」部分をクリックすることで警告の表示をON・OFFも出来るぞ。
デバッグ
デバッグとは問題・その原因を見つけ出して、正しく動作するよう修正する作業だ。単に問題を発見する作業は「テスト」とか「検査」とか呼ばれる。
ニコニコ生放送を見ていると、デバッガを使用せず、print文を散りばめるだけで、問題箇所を探している人がいるが、とても非効率だ。
そんなことではプログラムがなかなか完成せず、疾走せざるをえないのもやむなしだ。
デバッガを使って、問題の原因を効率的に探すようにしよう。
実行・実行終了
実行開始は F5。ビルドされていない場合は、ビルドを行うかどうかを聞いてくる
実行終了は Shift + F5
ブレークポイント
プログラム実行時に、ブレークポイントに達すると、実行が中断される
F9 または ソースが表示されている部分の一番左をクリックで、ブレークポイントを設定・解除できる。
ブレークポイントが設定された行には、下図の様に赤いマークが表示される。
ブレークポイントで停止した状態で F5 を押すと、実行を再開する。
次節で説明するステップ実行を行うと、1行づつコードを実行することが出来る。
ステップ実行
ブレークポイントで停止した状態で、F10 または F11 を押すと、1行づつコードを実行することが出来るぞ。
関数コールがあった場合、F10 はその関数を実行して戻ってくるが、F11 は関数内に入っていくぞ。
例えば、上図のように関数コールの行で停止しているとき、F10 を押すと、関数をコールして戻ってくる。
F11 を押すと measure_bin_srch() の中に入って停止する。
関数の中で Shift + F11 を押すと、現在の関数から抜けるまで実行してくれるぞ。
指定行まで実行
実行を停止した状態で、カーソルを特定の行に移動し、Ctrl + F10 を押すと、その行の直前まで実行してくれるぞ。
例えば、上図のように 86行目のブレークポイントで停止している状態で、93行目にカーソル移動し、Ctrl + F10 を押すと、92行目までを実行し、
93行目で停止してくれる。
途中、for ループなどがあって F10 で1行づつステップ実行すると埒が明かないけど、ブレークポイントは設定したくない時などに便利だぞ。
変数の値を確認
変数の上にマウスカーソルを当て、しばし待つと、下図のように変数の値をポップアップ表示してくれるぞ。
また、「自動変数」ウィンドウを見ると、変更されたばかりの値や、現在行で参照されている値が自動的に表示されるぞ。
なお、変数の値を 16進数で見たい場合は、下図のように右ボタンクリックして表示されるメニューで「16進数で表示」を選ぶといいぞ。
例外発生時
プログラム実行時、不正なメモリを参照などで例外が発生すると、下図のようなダイアログが表示される。
ここで、【中止】を押す人が多いようだが、それだと何も情報が得られない。
【再試行】を押し、次のダイアログを出してから【中断】を押すといいぞ。
そうする、例外が発生した箇所で下図の様に止まってくれるので、問題の箇所を直ぐに特定できて便利だぞ。
なお、止まった時点で下図の「呼び出し履歴」ウィンドウを見ると、そこがどこから呼び出されているかが分かる。 呼び出し元を見たい場合は、そのウィンドウで当該箇所をダブルクリックするといいぞ。
まとめ・参考
デバッグ時によく使うショートカット一覧:
ショートカットキー | 名称 | 説明 |
---|---|---|
F5 | 実行 | プログラムが終了するまで、またはブレークポイントまで実行。 |
Shift + F5 | 中断 | プログラム実行終了 |
F10 | ステップ オーバー | コードを1行実行。関数の場合は、関数をコールして戻ってくる。 |
F11 | ステップ イン | コードを1行実行。関数の場合は、関数の中身に入っていく。 |
Shift + F11 | ステップ アウト | 現在の関数から抜けるまで実行。 |
Ctrl + F10 | カーソル行まで実行 | カーソル行まで実行します。 |