このクイック スタートでは、Visual Studio デバッガーを使用してネイティブ C++ コードをデバッグする方法について説明します。 この記事では、デバッガーで作業するための基本的な機能について簡単に説明します。
Visual Studioがない場合は、Visual Studioダウンロード ページから 無料試用版をインストールできます。
新しいプロジェクトを作成する
まず、新しいプロジェクトを作成して、デバッガーでチェックインするコードを用意します。
Visual Studio を開き、新しいプロジェクトを作成します。
スタート ウィンドウが開いていない場合は、[ファイル>スタート ウィンドウ] を選択します。
スタート ウィンドウで、[ 新しいプロジェクトの作成] を選択します。
[ 新しいプロジェクトの作成 ] ウィンドウで、フィルターを設定し、プロジェクト テンプレートを検索します。
[ テンプレートの検索 ] ボックスに「 空」と入力します。
[ 言語 ] ドロップダウンを展開し、[ C++] を選択します。
結果の一覧で、C++ の Empty Project テンプレートを選択し、 Next を選択します。
C++ 用の Empty Project テンプレートが表示されない場合は、Continue without code オプションを選択します。
Tools>Get Tools and Features... を選択します。。Visual Studio インストーラーが開きます。
インストーラー ウィンドウで、C++ ワークロードを使用した デスクトップ開発 のチェック ボックスをオンにし、[ 変更] を選択します。
選択した C++ ワークロードを含むようにVisual Studioインストールが更新されます。
更新が完了したら、[ ファイル>スタート ウィンドウ] を選択し、 前の手順 に従って必要なテンプレートを選択します。
新しいプロジェクトを構成します。
Project名 と Solution name を入力するか、既定値を使用します。
既定の 場所 を使用するか、参照 (...) を選択して別のフォルダーにプロジェクトを作成します。
を選択してを作成します。
Visual Studio新しいプロジェクトを作成し、指定したフォルダーにプロジェクト ファイルを追加します。
プロジェクト ファイルを追加する
デバッガーでテストするコンテンツが含まれるようにコード ファイルを追加します。
ソリューション エクスプローラー ウィンドウで、 <project-name> を右クリックし、Add>New Item を選択します。
ソリューション エクスプローラー ペインが表示されない場合は、View>ソリューション エクスプローラー を選択します。
[ 新しい項目の追加 ] ダイアログで、MyDbgApp.cpp ファイル名を入力し、[ 追加] を選択します。
ファイルがコード エディターで開きます。
新しいファイルに次のコードを追加します。
#include <list> #include <iostream> using namespace std; void doWork() { list <int> c1; c1.push_back(10); c1.push_back(20); const list <int> c2 = c1; const int &i = c2.front(); const int &j = c2.front(); cout << "The first element is " << i << endl; cout << "The second element is " << j << endl; } int main() { doWork(); }Ctrl+S キーボード ショートカットを使用して、ファイルの変更を保存します。
ブレークポイントを設定する
ブレークポイント は、Visual Studio が実行中のコードを中断する場所を示す目印です。 ブレークポイントが設定されている場合は、変数の現在の値を確認し、メモリの動作を調べて、コードの特定の分岐が実行されているかどうかを確認できます。 ブレークポイントは、デバッグの最も基本的な機能です。
ブレークポイントを設定するには、コード内で
doWork()関数の呼び出しを見つけて、同じ行の左側の余白で選択します。ブレークポイントが設定されると、コード内の対応する行の左側の余白に赤い点が表示されます。
F5 キーボード ショートカットを使用してデバッグを開始します (または、[デバッグ>デバッグの開始] を選択します)。
コードの実行は、
doWork()関数の呼び出しの直前に一時停止します。ブレークポイントを設定した場所でデバッガーが一時停止します。 黄色の矢印は、デバッガーがアプリの実行を一時停止するステートメントを識別します。
ヒント
C++ コードでメモリ関連のエラーをデバッグする場合は、ブレークポイントを使用してアドレス値 (
NULLを探す) と参照カウントを調べることもできます。
条件付きブレークポイントを設定する
ループまたは再帰にブレークポイントを設定する場合、または頻繁にステップ実行するブレークポイントが多数ある場合は、 条件付きブレークポイントを使用します。
この方法は、特定の条件が満たされた場合 にのみ コードが中断されるようにするのに役立ちます。 条件付きブレークポイントを使用すると、時間を節約でき、再現が困難な問題を簡単にデバッグできます。
コードを確認する
Visual Studioには、アプリの実行を続行するようにデバッガーに指示するためのさまざまな方法が用意されています。 次の例は、コードを確認するのに役立つコマンドを示しています。
コードがブレークポイントで一時停止している間に、c1.push_back(20)ステートメントにカーソルを合わせ、緑色の クリックで実行(ここまで実行)
アイコンが表示されるまで待ちます。 アイコンを選択します。
コードがブレークポイントで一時停止している間に、c1.AddLast(20)ステートメントにカーソルを合わせ、緑色の クリックで実行(ここまで実行)
アイコンが表示されるまで待ちます。 アイコンを選択します。
アプリは実行を続行し、 doWorkを呼び出し、[実行] を選択してクリックしたコード行で一時停止 します。
コードのステップ 実行に使用される一般的なキーボード コマンドには 、F10 と F11 が含まれます。 詳細な手順については、「Visual Studio デバッガーの概要を参照してください。
データ ヒントで変数を検査する
データ ヒント機能を使用して、変数の状態を調べることができます。
現在のコード行 (黄色の実行ポインターでマーク) で、
c1オブジェクトの上にマウス ポインターを置くと、データ ヒントが表示されます。
データ ヒントには、
c1変数の現在の値が表示され、そのプロパティを調べることができます。デバッグ中に、変数に予期しない値が表示された場合は、バグが発生している可能性があります。 バグは、変数の呼び出しを行うコードまたは前の行にある可能性があります。
データ ヒントを展開して、
c1オブジェクトの現在のプロパティ値を確認します。コードの実行時に
c1の値を引き続き確認するには、データ ヒントの ピン
アイコンを選択します。ピン アクションにより、データ ヒントが開いたままになります。 コードが実行されると、ピン留めされたヒントの値が変更され、監視対象オブジェクトの現在の状態が表示されます。
ピン留めされたヒントを IDE 内の任意の場所に移動できるため、デバッグ中に他の項目を監視できなくなります。
デバッグ中にホット リロードを有効にする
デバッグ中に、コードでテストする変更が表示された場合は、ホット リロード 機能 (以前は Edit and Continue) を使用できます。
c2.front()ステートメントの 2 番目のインスタンスを選択し、コードをc2.back()に変更します。F10 キーを数回選択 (または [デバッグ] を選択>数回ステップ オーバー) してデバッガーを進め、編集したコードを実行します。
F10 ではデバッガーをステートメントごとに一歩進めますが、関数に入るのではなく、関数を飛ばして次に進みます (スキップしたコードは引き続き実行されます)。
機能と制限の詳細については、「Configure ホット リロードを参照してください。