次の方法で共有


チュートリアル: Visual Studio を使用して C# コードをデバッグする方法について説明します

この記事では、段階的なチュートリアルで Visual Studio デバッガーの機能について説明します。 デバッガー機能の上位レベルのビューが必要な場合は、「デバッガーのを最初に確認する」を参照してください。 アプリをデバッグするときは、通常、デバッガーがアタッチされた状態でアプリケーションを実行していることを意味します。 このタスクを実行すると、デバッガーには、実行中のコードの動作を確認するためのさまざまな方法が用意されています。 コードをステップ実行して変数に格納されている値を確認したり、変数にウォッチを設定して値がいつ変化するかを確認したり、コードの実行パスを調べたり、コードの分岐が実行されているかどうかを確認したりできます。 この演習がコードのデバッグを初めて試みた場合は、この記事を読む前に、 初心者向けのデバッグ をお読みください。

デモ アプリは C# ですが、ほとんどの機能は、Visual Studio でサポートされている C++、Visual Basic、F#、Python、JavaScript、およびその他の言語に適用できます (F# ではエディット コンティニュはサポートされていません。F# と JavaScript では 、Autos ウィンドウは サポートされていません)。 スクリーンショットは C# にあります。

このチュートリアルでは、次のことを行います。

  • デバッガーを起動し、ブレークポイントをヒットします。
  • デバッガーでコードをステップ実行するコマンドについて説明します
  • データ ヒントとデバッガー ウィンドウで変数を検査する
  • コールスタックを調べる

[前提条件]

Visual Studio 2022 と .NET デスクトップ開発 ワークロードがインストールされている必要があります。

Visual Studio 2019 と .NET Core クロスプラットフォーム開発 ワークロードがインストールされている必要があります。

Visual Studio をまだインストールしていない場合は、Visual Studio のダウンロード ページに移動して無料でインストールします。

ワークロードをインストールする必要があるが、既に Visual Studio がある場合は、[ ツール>Get Tools and Features...] に移動します。これで Visual Studio インストーラーが開きます。 Visual Studio インストーラーが起動します。 .NET Core クロスプラットフォーム開発ワークロードを選択し、[変更] を選択します

既に Visual Studio を使用しているが 、.NET デスクトップ開発 ワークロードがインストールされていない場合は、「 ツール>Get Tools and Features...」に移動し、Visual Studio インストーラーを起動します。 Visual Studio インストーラーで 、.NET デスクトップ開発 ワークロードを選択し、[変更] を選択 します

プロジェクトを作成する

まず、.NET Core コンソール アプリケーション プロジェクトを作成します。 プロジェクトの種類には、何も追加する前に、必要なすべてのテンプレート ファイルが付属しています。

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

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

  1. [ 新しいプロジェクトの作成 ] ウィンドウで、検索ボックスに 「コンソール 」と入力します。 次に、[言語] の一覧から [C# ] を選択し、[プラットフォーム] の一覧から [Windows ] を選択します。

    言語フィルターとプラットフォーム フィルターを適用したら、.NET Core の コンソール アプリ テンプレートを選択し、[ 次へ] を選択します。

    コンソール アプリの C# テンプレートのスクリーンショット。

    コンソール アプリ テンプレートが表示されない場合は、[新しいプロジェクトの作成] ウィンドウからインストールできます。 [ 探しているものが見つかりません] メッセージで、[ その他のツールと機能のインストール ] リンクを選択します。 次に、Visual Studio インストーラーで 、.NET Core クロスプラットフォーム開発ワークロードを 選択します。

  2. [新しいプロジェクトの構成] ウィンドウで、[プロジェクト名] ボックスに「GetStartedDebugging」と入力します。 次に、 [次へ] を選択します。

  3. 推奨されるターゲット フレームワーク (.NET 8.0 または長期サポート) を選択し、[ 作成] を選択します。

  1. [ 新しいプロジェクトの作成 ] ウィンドウで、検索ボックスに 「コンソール 」と入力します。 次に、[言語] の一覧から [C# ] を選択し、[プラットフォーム] の一覧から [Windows ] を選択します。

    言語フィルターとプラットフォーム フィルターを適用したら、 コンソール アプリ テンプレートを選択し、[ 次へ] を選択します。

    Visual Studio 2022 の [新しいプロジェクトの作成] ウィンドウの [コンソール アプリケーション] テンプレートのスクリーンショット。

    コンソール アプリ テンプレートが表示されない場合は、[新しいプロジェクトの作成] ウィンドウ からインストールできます。 [ 探しているものが見つかりません] メッセージで、[ その他のツールと機能のインストール ] リンクを選択します。 次に、Visual Studio インストーラーで 、.NET デスクトップ開発 ワークロードを選択します。

  2. [新しいプロジェクトの構成] ウィンドウで、[プロジェクト名] ボックスに「GetStartedDebugging」と入力します。 次に、 [次へ] を選択します。

  3. [追加情報] ウィンドウで、[フレームワーク] ドロップダウン メニューで [.NET 8.0] が選択されていることを確認し、[作成] を選択します。

Visual Studio で新しいプロジェクトが開きます。

アプリケーションを作成する

Program.csで、すべての既定のコードを次のコードに置き換えます。

using System;

class ArrayExample
{
   static void Main()
   {
      char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};
      string name = "";
      int[] a = new int[10];
      for (int i = 0; i < letters.Length; i++)
      {
         name += letters[i];
         a[i] = i + 1;
         SendMessage(name, a[i]);
      }
      Console.ReadKey();
   }

   static void SendMessage(string name, int msg)
   {
      Console.WriteLine("Hello, " + name + "! Count to " + msg);
   }
}

デバッガーを起動します。

  1. F5 キーを押す (デバッグ>デバッグの開始) または [デバッグの開始] ボタンをクリックします。[デバッグの開始] ボタンの画像。

    F5 キー を使用すると、デバッガーがアプリ プロセスにアタッチされた状態でアプリが起動しますが、現時点では、コードを調べる特別な作業は行っていません。 そのため、アプリが読み込まれるだけで、このコンソール出力が表示されます。

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    このチュートリアルでは、デバッガーを使用してこのアプリを詳しく見て、デバッガーの機能を確認します。

  2. 赤い停止ボタン (Shift + F5) を押してデバッガーを停止します。 [デバッグの停止] ボタンの画像。

  3. コンソール ウィンドウで、キーを押してコンソール ウィンドウを閉じます。

ほとんどの場合、ここではキーボード ショートカットを使用します。これは、デバッガー コマンドを高速に実行する方法であるためです。 ツール バーやメニュー コマンドなどの同等のコマンドも示されています。

  1. デバッガーを起動するには、 F5 キーを押すか、標準ツール バーの [デバッグ ターゲット ] ボタンを選択するか、[デバッグ] ツール バーの [ デバッグの開始 ] ボタンを選択するか、メニュー バーから [デバッグ>デバッグの開始 ] を選択します。

    Visual Studio 2022 の標準ツール バーの [デバッグ ターゲット] ボタンのスクリーンショット。

    F5 キー を使用すると、デバッガーがアプリ プロセスにアタッチされた状態でアプリが開始されます。 コードを調べる特別な操作は行っていないので、アプリは完了まで実行され、コンソールの出力が表示されます。

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    
  2. デバッガーを停止するには、 Shift キーを押しながら F5 キーを押すか、[デバッグ] ツール バーの [ デバッグの停止 ] ボタンを選択するか、メニュー バーから [デバッグ>ストップ デバッグ ] を選択します。

    Visual Studio 2022 の [デバッグ] ツール バーの [デバッグの停止] ボタンのスクリーンショット。

  3. コンソール ウィンドウで、任意のキーを選択してコンソール ウィンドウを閉じます。

ブレークポイントを設定してデバッガーを起動する

  1. for関数のMain ループで、次のコード行の左余白をクリックしてブレークポイントを設定します。

    name += letters[i];

    赤い円 ブレークポイントの画像。 ブレークポイントを設定した場所に表示されます。

    ブレークポイントは、信頼性の高いデバッグの最も基本的で重要な機能の 1 つです。 ブレークポイントは、変数の値やメモリの動作、またはコードの分岐が実行されているかどうかを確認できるように、Visual Studio で実行中のコードを中断する場所を示します。

  2. F5 キーまたは [デバッグの開始] ボタンを押します。 [デバッグの開始] ボタンのスクリーンショット。 アプリが起動し、ブレークポイントを設定したコード行にデバッガーが実行されます。

    ブレークポイントを設定して到達する

    黄色の矢印は、デバッガーが一時停止したステートメントを表し、同じ時点でアプリの実行も中断します (このステートメントはまだ実行されていません)。

    アプリがまだ実行されていない場合、 F5 は デバッガーを起動し、最初のブレークポイントで停止します。 それ以外の場合、 F5 は アプリの実行を続行して次のブレークポイントに進みます。

    ブレークポイントは、コード行または詳細に調べるコードのセクションがわかっている場合に便利な機能です。 条件付きブレークポイントなど、設定できるさまざまな種類のブレークポイントの詳細については、「 ブレークポイントの使用」を参照してください。

  1. for関数のMain ループで、次のコード行の左余白をクリックしてブレークポイントを設定します。

    name += letters[i];

    ブレークポイントを設定した場所に赤い円が表示されます。

    Visual Studio 2022 のブレークポイントのスクリーンショット。

    ブレークポイントは、信頼性の高いデバッグに不可欠な機能です。 Visual Studio で実行中のコードを一時停止するブレークポイントを設定して、変数の値やメモリの動作を確認したり、コードの分岐が実行されているかどうかを確認したりできます。

  2. デバッグを開始するには、 F5 キーを押すか、標準ツール バーの [デバッグ ターゲット ] ボタンを選択するか、[デバッグ] ツール バーの [ デバッグの開始 ] ボタンを選択するか、メニュー バーから [デバッグ>デバッグの開始 ] を選択します。 アプリが起動し、ブレークポイントを設定したコード行にデバッガーが実行されます。

    Visual Studio 2022 のコード エディターのブレークポイントを示すスクリーンショット。ブレークポイントでコードの実行が一時停止されています。

    黄色の矢印は、デバッガーが一時停止したステートメントを指します。 アプリの実行は同じ時点で一時停止され、ステートメントはまだ実行されていません。

    アプリが実行されていない場合、 F5 はデバッガーを起動し、最初のブレークポイントに達するまでアプリを実行します。 アプリがブレークポイントで一時停止されている場合、 F5 は次のブレークポイントに達するまでアプリの実行を続行します。

    ブレークポイントは、詳細に調べるコードの行またはセクションがわかっている場合に便利な機能です。 条件付きブレークポイントなど、設定できるさまざまな種類のブレークポイントの詳細については、「 ブレークポイントの使用」を参照してください。

ほとんどの場合、ここではキーボード ショートカットを使用します。これは、デバッガーでアプリを高速に実行するための優れた方法であるためです (メニュー コマンドなどの同等のコマンドはかっこで囲まれています)。

  1. name += letters[i] ステートメントでコードの実行が一時停止されている間、letters変数にカーソルを合わせると、その既定値である配列内の最初の要素の値がchar[10]

    変数を検査できる機能は、デバッガーの最も便利な機能の 1 つであり、さまざまな方法で行うことができます。 多くの場合、問題をデバッグしようとすると、変数が特定の時点で予想される値を格納しているかどうかを調べようとします。

  2. letters変数を展開して、変数に含まれるすべての要素を含むプロパティを表示します。

    'name+= letters[I]' ステートメントで一時停止したデバッガーのスクリーンショット。

  3. 次に、 name 変数にカーソルを合わせると、現在の値である空の文字列が表示されます。

  4. F10 キーを押して (または[デバッグ] >ステップ オーバーを選択)、SendMessage メソッドの呼び出しに進み、もう一度 F10 キーを押します。

    F10 では、アプリ コード内の関数またはメソッドにステップインすることなく、デバッガーが次のステートメントに進みます (コードは引き続き実行されます)。 SendMessageメソッド呼び出しで F10 キーを押すことで、SendMessageの実装コードをスキップしました (現時点では関心がない可能性があります)。

  5. F10 (または Debug>Step Over) キーを数回押して、for ループを数回反復処理し、ブレークポイントでもう一度一時停止し、name変数の上にマウス ポインターを置いて値を確認します。

    F10 キーを押して

    変数の値は、for ループの反復ごとに変化し、ffrfreなどの値が表示されます。 このシナリオでデバッガーをループを高速化するには、 F5 キーを押します (または[ デバッグ>Continue] を選択します。これにより、次のステートメントではなくブレークポイントに進みます。

    デバッグ中によく、変数のプロパティ値が期待通りに格納されているかを簡単に確認したいことがあります。データヒントを使用するとそれを素早く確認できます。

  6. for メソッドのMain ループでコードの実行が一時停止したまま、 メソッドの呼び出しで一時停止するまで > キーを押します (または[SendMessageを選択します)。

    次のコード行にいる必要があります。

    SendMessage(name, a[i]);

  7. もう一度 F11 キーを押して、 SendMessage メソッドにステップ インします。

    黄色のポインターが SendMessage メソッドに進みます。

    SendMessage メソッドの実行ポインターのスクリーンショット。

    F11 は ステップ イン コマンドで、アプリの実行を一度に 1 つのステートメントに進めます。 F11 は、実行フローを最も詳細に調べるのに適した方法です。 既定では、デバッガーはユーザー以外のコードをスキップします (詳細については、「 マイ コードのみ」を参照してください)。

    SendMessage メソッドの検査が終わった後、メソッドから抜け出しますが、デバッガーには留まっていたいとします。 これを行うには、[ ステップ アウト ] コマンドを使用します。

  8. Shift + F11 (またはデバッグ>ステップ アウト) を押します。

    このコマンドは、現在のメソッドまたは関数が戻るまでアプリの実行を再開 (およびデバッガーを進めます) します。

    for メソッドのMain ループに戻り、SendMessage メソッドの呼び出しで一時停止します。 コード内を移動するさまざまな方法の詳細については、「デバッガー内のコード内を移動する」を参照してください。

  1. name += letters[i] ステートメントでコードの実行が一時停止している間に、letters変数にカーソルを合わせると、配列のサイズと要素の種類を示すデータ ヒントが表示char[10]

    デバッガーの最も便利な機能の 1 つは、変数を検査する機能です。 多くの場合、問題をデバッグしようとすると、変数に特定の時点で予想される値があるかどうかを調べようとしています。 データヒントの表示は、その確認に適した方法です。

  2. letters変数を展開して、すべての配列要素とその値を表示します。

    'letters' 配列変数の要素値を示す Visual Studio 2022 のデバッガー データ ヒントのスクリーンショット。

  3. name変数にカーソルを合わせると、現在の値 (空の文字列) が表示されます。

  4. デバッガーを次のステートメントに進めるには、 F10 キーを押すか、[デバッグ] ツール バーの [ ステップ オーバー ] ボタンを選択するか、メニュー バーから [デバッグ>ステップ オーバー ] を選択します。 F10 を 2 回選択して、SendMessage メソッド呼び出しを超えます。

    F10 は、関数またはメソッドにステップ インせずにデバッガーを進めますが、そのコードは引き続き実行されます。 この方法では、 SendMessage メソッド内のコードのデバッグをスキップしました。現時点では関心がありません。

  5. for ループを数回反復処理するには、F10 キーを繰り返し選択します。 各ループの反復処理中に、ブレークポイントで一時停止し、 name 変数の上にマウス ポインターを置いて、データ ヒントでその値を確認します。

    変数の値は、for ループの反復ごとに変化し、ffrfreなどの値が表示されます。 ループ内でデバッガをより速く進めるには、F5キーを選択すると、次のステートメントではなくブレークポイントまで進みます。

  6. for メソッドのMain ループでコードの実行が一時停止している間に、F11 キーを押すか、[デバッグ] ツール バーの [ステップ イン] ボタンを選択するか、メニュー バーから [デバッグ>ステップ イン] を選択して、SendMessage メソッドの呼び出しに到達します。

    デバッガーは、次のコード行で一時停止する必要があります。

    SendMessage(name, a[i]);

  7. SendMessageメソッドにステップ インするには、もう一度 F11 キーを押します。

    黄色のポインターが SendMessage メソッドに進みます。

    'SendMessage' メソッド内のデバッガーの実行ポインターを示すスクリーンショット。

    F11 を使用すると、コードの実行フローをより詳細に調べることができます。 メソッド呼び出しからメソッドにステップ インするには、 F11 キーを押します。 既定では、デバッガーは非ユーザー メソッドへのステップインをスキップします。 非ユーザー コードのデバッグの詳細については、「 マイ コードのみ」を参照してください。

    SendMessage メソッドのデバッグが完了したら、for メソッドのmain ループに戻る準備ができました。

  8. SendMessageメソッドを終了するには、Shift キーを押しながら F11 キーを押すか、[デバッグ] ツール バーの [ステップ アウト] ボタンを選択するか、メニュー バーから [デバッグ>ステップ アウト] を選択します。

    ステップ アウト は、アプリの実行を再開し、現在のメソッドまたは関数が返されるまでデバッガーを進めます。

    for メソッドのMain ループに黄色のポインターが戻り、SendMessage メソッドの呼び出しで一時停止しています。 コード内を移動するさまざまな方法の詳細については、「デバッガー内のコード内を移動する」を参照してください。

  1. F5 キーを押してブレークポイントに進みます。

  2. コード エディターで、下にスクロールしてConsole.WriteLineメソッドをSendMessageメソッドの中でホバーし、緑色のクリックして実行ボタンクリックして実行のボタンの画像。が表示されるまでホバーしてください。 ボタンのツールヒントには、"実行をここから実行する" と表示されます。

    [クリックして実行] ボタンのスクリーンショット。

    Visual Studio 2017 では、[ クリックして実行 ] ボタンが新しく追加されています。 (緑色の矢印ボタンが表示されない場合は、代わりにこの例で F11 キーを使用して、デバッガーを適切な場所に進める必要があります)。

  3. [クリックして実行] ボタンを選択します。 [クリックして実行] ボタンの画像。

    デバッガーは、 Console.WriteLine メソッドに進みます。

    このボタンの使用は、一時的なブレークポイントの設定と似ています。 [クリックまで実行] は、アプリ コードの表示領域内ですばやく移動するのに便利です (開いている任意のファイルで選択できます)。

  1. F5 キーを押してブレークポイントに進みます。

  2. コード エディターで、SendMessage メソッド内の Console.WriteLine メソッド呼び出しにカーソルを合わせ、クリックして実行 ボタンが表示されるまで待ちます。 ボタンのツールヒントには、"実行をここから実行する" と表示されます。

    Visual Studio 2022 の [クリックして実行] ボタンを示すスクリーンショット。

  3. 「クリックして実行」ボタンを選択します。 または、 Console.WriteLine ステートメントにカーソルを置き、 Ctrl + F10 キーを押します。 または、 Console.WriteLine メソッド呼び出しを右クリックし、コンテキスト メニューから [ カーソルまで実行 ] を選択します。

    デバッガーは、 Console.WriteLine メソッドの呼び出しに進みます。

    [ クリックして実行 ] ボタンを使用すると、一時的なブレークポイントを設定するのと似ています。開いているファイル内のアプリ コードの表示領域内をすばやく回避するのに便利です。

アプリをすばやく再起動する

再起動 ボタン 再起動ボタンの画像を選択します。 を選択します (Ctrl + Shift + F5)。

[再起動]を押すと、アプリを停止してデバッガーを再起動するよりも時間を節約できます。 デバッガーは、コードの実行によってヒットした最初のブレークポイントで一時停止します。

デバッガーは、 for ループ内で前に設定したブレークポイントで再び停止します。

デバッガーで最初からアプリを再実行するには、 Ctrl + Shift + F5 キーを押すか、[デバッグ] ツール バーの [再起動 ] ボタンを選択するか、メニュー バーから [デバッグ>再起動 ] を選択します。

Visual Studio 2022 のデバッグ ツール バーの [再起動] ボタンのスクリーンショット。

再起動 すると、デバッガーが停止し、1 つの手順で再起動されます。 デバッガーが再起動すると、最初のブレークポイント ( for ループ内で以前に設定したブレークポイント) まで実行され、一時停止します。

[自動変数] ウィンドウと [ローカル] ウィンドウを使用して変数を検査する

  1. コード エディターの下部にある オート ウィンドウを見てください。

    閉じている場合は、 デバッグ>Windows>Autos を選択してデバッガーで一時停止中に開きます。

    [ 自動変数 ] ウィンドウに、変数とその現在の値が表示されます。 [自動変数] ウィンドウには、現在の行または前の行で使用されているすべての変数が表示されます (言語固有の動作についてはドキュメントを確認してください)。

  2. 次に、[自動変数] ウィンドウの横にあるタブの [ローカル] ウィンドウを見てください。

  3. letters変数を展開して、含まれる要素を表示します。

    Visual Studio の [ローカル] ウィンドウのスクリーンショット。

    ローカル ウィンドウには、現在の スコープ、つまり現在の実行コンテキストにある変数が表示されます。

[自動変数] ウィンドウと [ローカル] ウィンドウには、デバッグ中に変数の値が表示されます。 ウィンドウは、デバッグ セッション中にのみ使用できます。 [自動変数] ウィンドウには、デバッガーの現在の行と前の行で使用されている変数が表示されます。 ローカル ウィンドウには、ローカル スコープで定義されている変数が表示されます。これは通常、現在の関数またはメソッドです。

  1. デバッガーが一時停止している間は、コード エディターの下部にある [自動変数 ] ウィンドウを表示します。

    [自動変数] ウィンドウが閉じている場合は、Ctrl + D、A を選択するか、メニュー バーから [デバッグ>Windows>Autos] を選択します。

  2. デバッガーを一時停止したまま、[自動変数] ウィンドウの横にあるタブで [ローカル] ウィンドウを表示します。

    [ローカル] ウィンドウが閉じている場合は、Ctrl キーを押しながら D キー、L キーを押すか、[デバッグ>Windows>Locals] を選択します。

  3. [ ローカル ] ウィンドウで、 letters 変数を展開して、配列要素とその値を表示します。

    Visual Studio 2022 の [ローカル] ウィンドウのスクリーンショット。'letters' 配列変数が展開されています。

[自動変数] ウィンドウと [ローカル] ウィンドウの詳細については、[自動変数] ウィンドウと [ローカル] ウィンドウで変数を検査するを参照してください

時計を設定する

メイン コード エディター ウィンドウで、 name 変数を右クリックし、[ ウォッチの追加] を選択します。

コード エディターの下部に [ウォッチ ] ウィンドウが開きます。 ウォッチ ウィンドウを使用して、監視する変数 (または式) を指定できます。

これで、 name 変数にウォッチが設定され、デバッガー内を移動すると値の変化を確認できます。 他の変数ウィンドウとは異なり、[ ウォッチ ] ウィンドウには、監視している変数が常に表示されます (スコープ外の場合は淡色表示されます)。

コードのステップ実行時に監視する変数または式を指定するには、[ ウォッチ ] ウィンドウに追加します。

  1. デバッガーが一時停止している間に、 name 変数を右クリックし、[ウォッチの 追加] を選択します。

    既定では、コード エディターの下部に [ウォッチ ] ウィンドウが開きます。

  2. name変数にウォッチを設定したので、コードをステップ実行して、name変数の値が各forループイテレーションで変化することを確認します。

    他の変数ウィンドウとは異なり、ウォッチ ウィンドウには、監視している変数が常に表示されます。 スコープ外の変数は使用不可として表示されます。

[ウォッチ] ウィンドウの詳細については、「ウォッチ ウィンドウを使用したウォッチ変数」を参照してください。

コールスタックを調べる

  1. for ループでコードの実行が一時停止している間に、[呼び出し履歴] ウィンドウを選択します。このウィンドウは既定で右下ウィンドウで開きます。

    閉じている場合は、 デバッグ>Windows>Call Stack を選択してデバッガーで一時停止中に開きます。

  2. メソッドでデバッガーが一時停止するまでSendMessageを数回選択します。 [呼び出し履歴] ウィンドウを見てください。

    Visual Studio の [呼び出し履歴] ウィンドウのスクリーンショット。

    呼び出し履歴 ウィンドウには、メソッドと関数が呼び出される順序が表示されます。 上部の行には、現在の関数 (このアプリの SendMessage メソッド) が表示されます。 2 行目は、SendMessage メソッドからMainが呼び出されたことを示しています。

    呼び出し履歴 ウィンドウは、Eclipse などの一部の IDE のデバッグパースペクティブに似ています。

    呼び出し履歴は、アプリの実行フローを調べて理解するのに適した方法です。

    コード行をダブルクリックすると、そのソース コードを確認できます。また、デバッガーによる検査中の現在のスコープも変更されます。 このアクションによってデバッガーが進むことはありません。

    呼び出し履歴 ウィンドウから右クリック メニューを使用して、他の操作を行うこともできます。 たとえば、指定した関数にブレークポイントを挿入し、[ カーソルまで実行] を使用してデバッガーを進め、ソース コードを調べることができます。 詳細については、「 方法: 呼び出し履歴を調べる」を参照してください。

呼び出し履歴は、メソッドと関数が呼び出される順序を示すことによって、アプリの実行フローを理解するのに役立ちます。

  1. デバッガーが for ループで一時停止している間に、[ 呼び出し履歴 ] ウィンドウを表示します。このウィンドウは、コード エディターの右下ペインに既定で開きます。

    [呼び出し履歴] ウィンドウが閉じている場合は、Ctrl + D、C を選択するか、メニュー バーから [デバッグ>Windows>Call Stack] を選択します。

    [呼び出し履歴] ウィンドウには、現在の Main メソッドに黄色のポインターが表示されます。

  2. メソッドでデバッガーが一時停止するまでSendMessageを数回選択します。

    [呼び出し履歴] ウィンドウの一番上の行には、SendMessage メソッドである現在の関数が表示されます。 2 行目は、 SendMessage メソッドが Main メソッドから呼び出されたことを示しています。

    Visual Studio 2022 の [呼び出し履歴] ウィンドウのスクリーンショット。

    [呼び出し履歴] ウィンドウは、Eclipse などの一部の IDE のデバッグパースペクティブに似ています。

    [呼び出し履歴] ウィンドウで、コード行をダブルクリックしてそのソース コードに移動し、デバッガーによる検査中の現在のスコープを変更できます。 このアクションによってデバッガーが進むことはありません。

    呼び出し履歴 ウィンドウから右クリック メニューを使用して、他の操作を行うこともできます。 たとえば、指定した関数にブレークポイントを挿入したり、[ カーソルに実行] を使用してデバッガーを進めたり、ソース コードに移動したりできます。

呼び出し履歴の詳細については、「方法: 呼び出し履歴を調べる」を参照してください。

次のステップ

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