次の方法で共有


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

Visual Studio デバッガーには、アプリのデバッグに役立つ強力な機能が多数用意されています。 このトピックでは、基本的な機能の一部について簡単に説明します。

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

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

    [スタート] ウィンドウがまだ開いていない場合は、[ ファイル] > [スタート ウィンドウ] を選択します。 [スタート] ウィンドウで、[新しいプロジェクト作成] を選択します。 検索ボックスに「空のプロジェクト」と入力し、C++ 空のプロジェクト テンプレートを選択します。

    プロジェクト テンプレートが表示されない場合は、 Visual Studio インストーラーを開きます。 [C++ によるデスクトップ開発] ワークロードを選択し、[変更] を選択します

    Visual Studio によってプロジェクトが作成されます。

    という名前の新しいソース ファイルを作成する MyDbgApp.cpp

  2. MyDbgApp.cppで、次のコードを置き換えます。

    int main()
    {
        return 0;
    }
    

    次のコードを使用します ( #include "stdafx.h"は削除しないでください)。

    #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();
    }
    

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

ブレークポイントは、Visual Studio で実行中のコードを中断する場所を示すマーカーであり、変数の値やメモリの動作、またはコードの分岐が実行されているかどうかを確認できます。 これは、デバッグの最も基本的な機能です。

  1. ブレークポイントを設定するには、 doWork 関数呼び出しの左側にある余白をクリックします (または、コード行を選択して F9 キーを押します)。

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

  2. F5 キーを押します (または、[デバッグ] > [デバッグの開始] を選択します)。

    ブレークポイントにヒット

    ブレークポイントを設定した場所でデバッガーが一時停止します。 デバッガーとアプリの実行が一時停止されているステートメントは、黄色の矢印で示されます。 doWork関数呼び出しを含む行はまだ実行されていません。

    ヒント

    ループまたは再帰にブレークポイントがある場合、または頻繁にステップ実行するブレークポイントが多数ある場合は、 条件付きブレークポイント を使用して、特定の条件が満たされた場合にのみコードが中断されるようにします。 条件付きブレークポイントを使用すると、時間が節約され、再現が困難な問題をデバッグしやすくなります。

    C++ でメモリ関連のエラーをデバッグしようとすると、ブレークポイントを使用してアドレス値と参照カウントを検査することもできます。

デバッガーに続行するように指示するさまざまなコマンドがあります。 Visual Studio 2017 以降で使用できる便利なコード ナビゲーション コマンドを示します。

ブレークポイントで一時停止中に、ステートメント c1.push_back(20) にマウス ポインターを合わせ、緑色の [ クリックして実行 ] ボタン Run to Click が表示されたら、[ クリックして実行 ] ボタンを押します。

クリックで実行

アプリは実行を続行し、 doWorkを呼び出し、ボタンをクリックしたコード行で一時停止します。

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

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

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

    データヒントを表示

    データヒントには、 c1 変数の現在の値が表示され、そのプロパティを調べることができます。 デバッグ時に予期しない値が表示される場合は、前のコード行または呼び出し元のコード行にバグがある可能性があります。

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

  3. コードの実行中に c1 の値を引き続き表示できるようにデータヒントをピン留めする場合は、小さなピン アイコンをクリックします。 ピン留めされたツールチップを便利な場所に移動できます。

コードを編集してデバッグを続行する

デバッグ セッションの途中でコードでテストする変更を特定した場合は、その変更も実行できます。

  1. c2.front()の 2 番目のインスタンスをクリックし、c2.front()c2.back() に変更します。

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

    エディット コンティニュ

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

エディット コンティニュの使用と機能の制限の詳細については、「 エディット コンティニュ」を参照してください。

次のステップ

このチュートリアルでは、デバッガーを起動し、コードをステップ実行し、変数を検査する方法を学習しました。 詳細な情報へのリンクと共に、デバッガーの機能を大まかに見ることができます。