クイック スタート: Visual Studio デバッガーを使用して C++ でデバッグする

このクイック スタートでは、Visual Studio デバッガーを使用してネイティブ C++ コードをデバッグする方法について説明します。 この記事では、デバッガーで作業するための基本的な機能について簡単に説明します。

Visual Studioがない場合は、Visual Studioダウンロード ページから 無料試用版をインストールできます。

新しいプロジェクトを作成する

まず、新しいプロジェクトを作成して、デバッガーでチェックインするコードを用意します。

  1. Visual Studio を開き、新しいプロジェクトを作成します。

    • スタート ウィンドウが開いていない場合は、[ファイル>スタート ウィンドウ] を選択します。

    • スタート ウィンドウで、[ 新しいプロジェクトの作成] を選択します。

  2. [ 新しいプロジェクトの作成 ] ウィンドウで、フィルターを設定し、プロジェクト テンプレートを検索します。

    • [ テンプレートの検索 ] ボックスに「 」と入力します。

    • [ 言語 ] ドロップダウンを展開し、[ C++] を選択します。

  3. 結果の一覧で、C++ の Empty Project テンプレートを選択し、 Next を選択します。

    C++ 用の Empty Project テンプレートが表示されない場合は、Continue without code オプションを選択します。

    1. Tools>Get Tools and Features... を選択します。。Visual Studio インストーラーが開きます。

    2. インストーラー ウィンドウで、C++ ワークロードを使用した デスクトップ開発 のチェック ボックスをオンにし、[ 変更] を選択します。

      選択した C++ ワークロードを含むようにVisual Studioインストールが更新されます。

    3. 更新が完了したら、[ ファイル>スタート ウィンドウ] を選択し、 前の手順 に従って必要なテンプレートを選択します。

  4. 新しいプロジェクトを構成します。

    1. Project名Solution name を入力するか、既定値を使用します。

    2. 既定の 場所 を使用するか、参照 (...) を選択して別のフォルダーにプロジェクトを作成します。

    3. を選択してを作成します。

    Visual Studio新しいプロジェクトを作成し、指定したフォルダーにプロジェクト ファイルを追加します。

プロジェクト ファイルを追加する

デバッガーでテストするコンテンツが含まれるようにコード ファイルを追加します。

  1. ソリューション エクスプローラー ウィンドウで、 <project-name> を右クリックし、Add>New Item を選択します。

    ソリューション エクスプローラー ペインが表示されない場合は、View>ソリューション エクスプローラー を選択します。

  2. [ 新しい項目の追加 ] ダイアログで、MyDbgApp.cpp ファイル名を入力し、[ 追加] を選択します。

    ファイルがコード エディターで開きます。

  3. 新しいファイルに次のコードを追加します。

    #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();
    }
    
  4. Ctrl+S キーボード ショートカットを使用して、ファイルの変更を保存します。

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

ブレークポイント は、Visual Studio が実行中のコードを中断する場所を示す目印です。 ブレークポイントが設定されている場合は、変数の現在の値を確認し、メモリの動作を調べて、コードの特定の分岐が実行されているかどうかを確認できます。 ブレークポイントは、デバッグの最も基本的な機能です。

  1. ブレークポイントを設定するには、コード内で doWork() 関数の呼び出しを見つけて、同じ行の左側の余白で選択します。

    ブレークポイントが設定されると、コード内の対応する行の左側の余白に赤い点が表示されます。

    Visual Studio デバッガーでブレークポイントを設定する方法を示すスクリーンショット。

    Visual Studio 2022 のデバッガーでブレークポイントを設定する方法を示すスクリーンショット。

  2. F5 キーボード ショートカットを使用してデバッグを開始します (または、[デバッグ>デバッグの開始] を選択します)。

    Visual Studio で、設定されたブレークポイントでデバッガーが一時停止していることを示すスクリーンショット。

    Visual Studio 2022 で、設定したブレークポイントでデバッガーが一時停止していることを示すスクリーンショット。

    コードの実行は、 doWork() 関数の呼び出しの直前に一時停止します。

    ブレークポイントを設定した場所でデバッガーが一時停止します。 黄色の矢印は、デバッガーがアプリの実行を一時停止するステートメントを識別します。

    ヒント

    C++ コードでメモリ関連のエラーをデバッグする場合は、ブレークポイントを使用してアドレス値 ( NULLを探す) と参照カウントを調べることもできます。

条件付きブレークポイントを設定する

ループまたは再帰にブレークポイントを設定する場合、または頻繁にステップ実行するブレークポイントが多数ある場合は、 条件付きブレークポイントを使用します。

この方法は、特定の条件が満たされた場合 にのみ コードが中断されるようにするのに役立ちます。 条件付きブレークポイントを使用すると、時間を節約でき、再現が困難な問題を簡単にデバッグできます。

コードを確認する

Visual Studioには、アプリの実行を続行するようにデバッガーに指示するためのさまざまな方法が用意されています。 次の例は、コードを確認するのに役立つコマンドを示しています。

コードがブレークポイントで一時停止している間に、c1.push_back(20)ステートメントにカーソルを合わせ、緑色の クリックで実行ここまで実行 アイコンが表示されるまで待ちます。 アイコンを選択します。

Visual Studio デバッガーの [クリック位置まで実行] アクションの操作方法を示すスクリーンショット。

コードがブレークポイントで一時停止している間に、c1.AddLast(20)ステートメントにカーソルを合わせ、緑色の クリックで実行ここまで実行 アイコンが表示されるまで待ちます。 アイコンを選択します。

Visual Studio 2022 デバッガーで [クリック位置まで実行] アクションを使用する方法を示すスクリーンショット。

アプリは実行を続行し、 doWorkを呼び出し、[実行] を選択してクリックしたコード行で一時停止 します

コードのステップ 実行に使用される一般的なキーボード コマンドには 、F10F11 が含まれます。 詳細な手順については、「Visual Studio デバッガーの概要を参照してください。

データ ヒントで変数を検査する

データ ヒント機能を使用して、変数の状態を調べることができます。

  1. 現在のコード行 (黄色の実行ポインターでマーク) で、 c1 オブジェクトの上にマウス ポインターを置くと、データ ヒントが表示されます。

    Visual Studio デバッガーでコード変数のデータ ヒントを表示する方法を示すスクリーンショット。

    Visual Studio 2022 のデバッガーでコード変数のデータ ヒントを表示する方法を示すスクリーンショット。

    データ ヒントには、 c1 変数の現在の値が表示され、そのプロパティを調べることができます。

    デバッグ中に、変数に予期しない値が表示された場合は、バグが発生している可能性があります。 バグは、変数の呼び出しを行うコードまたは前の行にある可能性があります。

  2. データ ヒントを展開して、 c1 オブジェクトの現在のプロパティ値を確認します。

  3. コードの実行時に c1 の値を引き続き確認するには、データ ヒントの ピン アイコンを選択します。

    ピン アクションにより、データ ヒントが開いたままになります。 コードが実行されると、ピン留めされたヒントの値が変更され、監視対象オブジェクトの現在の状態が表示されます。

    ピン留めされたヒントを IDE 内の任意の場所に移動できるため、デバッグ中に他の項目を監視できなくなります。

デバッグ中にホット リロードを有効にする

デバッグ中に、コードでテストする変更が表示された場合は、ホット リロード 機能 (以前は Edit and Continue) を使用できます。

  1. c2.front() ステートメントの 2 番目のインスタンスを選択し、コードを c2.back() に変更します。

  2. F10 キーを数回選択 (または [デバッグ] を選択>数回ステップ オーバー) してデバッガーを進め、編集したコードを実行します。

    Visual Studio デバッガーの「ホット リロード」機能を使用して編集を続行する方法を示すアニメーション。

    Visual Studio 2022 デバッガーで編集して続行する方法を示すアニメーション。

    F10 ではデバッガーをステートメントごとに一歩進めますが、関数に入るのではなく、関数を飛ばして次に進みます (スキップしたコードは引き続き実行されます)。

機能と制限の詳細については、「Configure ホット リロードを参照してください。

次のステップ