Visual Studio Code使ってますか?今回は、C++をデバックする環境について紹介していきます。C#やJavaScriptより、若干セットアップするソフトがありますが、VSCodeでもC++をデバックすることが可能です。
C++をデバッグするための準備
拡張機能として、「C/C++ for Visual Studio Code」をインストールします。
インストールの方法は、いつもの通り、機能拡張で「C++」と検索して表示された一覧から、「C/C++ for Visual Studio Code」を選択して「インストール」操作を行います。
この投稿を作っている時は「プレビュー」表示ですが、デバックなどの操作は一通りすることができました。
「C/C++ for Visual Studio Code」はデバッグ環境を提供する機能拡張なので、ソースコードを実行形式に翻訳する「g++」などのコンパイラーが必要になります。
今回は、無償で提供されている「Visual Studio Community 2017」を使いました。
他のエディションのVisual Studio(Expressを含む)がインストールされている場合には、インストールする必要はありません。
C++プロジェクトの作成
Visual Studio CodeではC++のプロジェクトを作成することができないので、Visual Studioの力を借ります。(CMakeなどを使う場合には、C++の空のプロジェクトを作成しておきます)
- Visual Studio Communityを起動して、新しいプロジェクトを作成します。
- 表示された[新しいプロジェクト]画面で[空のプロジェクト]を選択します。
- [名前]は適当(画面では”Hello”)に入力して[OK]ボタンをクリックします。
- 空のプロジェクトが作成されます。
- [ソリューション エクスプローラー]の[ソースコード]を選択してマウスの右ボタンをクリックして表示されたポップアップメニューから[追加|新しい項目]メニューを選択します。
- 表示された[新しい項目の追加]画面で[C++ファイル(.cpp)]を選択して[OK]ボタンをクリックします。
- ソースファイルが追加されます。(画面ではHello.cppを追加しています)
- Visual Studioを終了します。
Visual Studio Codeでデバッグせずに、Visual Studio Communityでデバッグしろよという突っ込みは置いておきます。
今回の記事は、VC++プロジェクトをVSCでデバッグする環境を作るのが目的です。とりあえず、Visual Studioの力を借りるのはここまでです。
VSCでデバック
ここから本題のVisual Studio Codeを使ってC++のソースコードをデバックします。デバッグする前にソースコードをビルドする必要があります。
VSCのターミナル画面(コマンドプロンプトでも構いません)で、以下のようにコマンドを走らせます。(Visual Studioのバージョンやソースコードの場所が異なる場合には適宜読み替えてください)
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" "C:\Hello\Hello.vcxproj"
ビルドが成功すれば、[ビルドに成功しました]メッセージがターミナルに表示されます。
ビルドが成功したらいよいよデバックです。
- VSCでプロジェクトの場所を開きます。
- 追加した[Hello.cpp]を編集します。画面を見ると分かりますが、コードを打ち込めば、Intellisenceも使えます。
サンプルは基本的なHelloWorldを表示しています。 - ソースコードを保存したら、[タスク|タスクの実行]メニューを選択します。
- 表示された[実行するタスクがありません]メッセージで[タスクを構成する]をクリックします。
- [テンプレートからtasks.jsonを作成]をクリックします。
- [MSBuild ビルドターゲットを実行]をクリックします。
- 作成された[tasks.json]のtype部分を編集します。
“type”: “process”の部分が編集した後です。 - [デバック|デバックの開始]メニューを選択します。
- 作成された[launch.json]の”program”部分を、ビルドした実行ファイルの場所に変更します。
”Program”: ”$(workspaceFolder)/Hello/Hello/Debug/Hello.exe” の部分を変更しています。 - ソースコードの適当な場所に、ブレイクポイントを設定して[デバッグ|デバッグの開始]メニューを選択します。
- ブレイクポイントを指定した行で実行が停止します。
後のデバッグ作業はC#などと同じです。
まとめ
JavaScriptなどと違って、ソースコード変更後は、コンパイルやビルドのコマンドを走らせる必要がありますが、動作の軽いVisual Studio Codeを使って、C++でもデバッグ作業を行うことができます。
しかし、DirectXやデバイスドライバなど他社ライブラリや、画面などを伴うプログラムのデバッグには、VSCは向いていません。そのような場合には、Visual Studioに頼ることになります。
Visual Studio CodeでC++のデバッグをする場合には、コンソールアプリなど単純なプログラムを対象として使うことになります。
スポンサーリンク
最後までご覧いただき、ありがとうございます。