このエントリーをはてなブックマークに追加

C言語/C++ VisualStudio 入門
Copyright (C) 2015 by Nobuhide Tsuda

目次

  1. VisualStudio とは
  2. 新規プロジェクト作成
  3. ビルド
  4. デバッグ
    1. 実行・実行終了
    2. ブレークポイント
    3. ステップ実行
    4. 指定行まで実行
    5. 変数の値を確認
  5. 例外発生時
  6. まとめ・参考

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 カーソル行まで実行 カーソル行まで実行します。