チュートリアル: Visual Studio を使用した C++ のデバッグについて理解するTutorial: Learn to debug C++ code using Visual Studio

この記事では、ステップ バイ ステップのチュートリアルで Visual Studio デバッガーの機能を紹介します。This article introduces the features of the Visual Studio debugger in a step-by-step walkthrough. デバッガー機能の概要を確認したい場合は、「デバッガーでのはじめに」を参照してください。If you want a higher-level view of the debugger features, see First look at the debugger. "ご自分のアプリをデバッグする" 場合、通常、それはデバッガーをアタッチした状態でご自分のアプリケーションを実行することを意味します。When you debug your app, it usually means that you are running your application with the debugger attached. これを行う場合、デバッガーには、ご自分のコードが実行されている間にそのコードによって何が行われているのかを確認するためのさまざまな方法が用意されています。When you do this, the debugger provides many ways to see what your code is doing while it runs. ご自分のコードをステップ実行して変数内に格納されている値を確認したり、変数に対してウォッチ式を設定して値が変わるタイミングを確認したり、コードの実行パスを調べたり、コードの分岐が実行されているかどうかを確認したりできます。You can step through your code and look at the values stored in variables, you can set watches on variables to see when values change, you can examine the execution path of your code, see whether a branch of code is running, and so on. コードのデバッグを試みるのが今回初めてである場合は、この記事を先に進む前に超初心者向けのデバッグ方法に関するページを参照することをお勧めします。If this is the first time that you've tried to debug code, you may want to read Debugging for absolute beginners before going through this article.

デモ アプリは C++ ですが、ほとんどの機能は C#、Visual Basic、F#、Python、JavaScript、および Visual Studio でサポートされているその他の言語にも適用されます (F# ではエディット コンティニュはサポートされていません。Although the demo app is C++, most of the features are applicable to C#, Visual Basic, F#, Python, JavaScript, and other languages supported by Visual Studio (F# does not support Edit-and-continue. F# および JavaScript は、 [自動変数] ウィンドウをサポートしていません)。F# and JavaScript do not support the Autos window). スクリーン ショットは C++ になっています。The screenshots are in C++.

このチュートリアルでは、次の作業を行います。In this tutorial, you will:

  • デバッガーを起動して、ブレークポイントにヒットします。Start the debugger and hit breakpoints.
  • デバッガー内でコードをステップ実行するコマンドについて学習します。Learn commands to step through code in the debugger
  • データ ヒントおよびデバッガー ウィンドウ内で変数を確認します。Inspect variables in data tips and debugger windows
  • 呼び出し履歴を調べるExamine the call stack

必須コンポーネントPrerequisites

Visual Studio 2019 および C++ によるデスクトップ開発ワークロードをインストールしている必要があります。You must have Visual Studio 2019 installed and the Desktop development with C++ workload.

Visual Studio 2017 および C++ によるデスクトップ開発ワークロードをインストールしている必要があります。You must have Visual Studio 2017 installed and the Desktop development with C++ workload.

Visual Studio をまだインストールしていない場合は、Visual Studio のダウンロード ページに移動し、無料試用版をインストールしてください。If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

Visual Studio をまだインストールしていない場合は、Visual Studio のダウンロード ページに移動し、無料試用版をインストールしてください。If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

Visual Studio は既にあり、ワークロードだけをインストールする必要がある場合は、 [ツール] > [ツールと機能を取得] に移動すると、Visual Studio インストーラーが開きます。If you need to install the workload but already have Visual Studio, go to Tools > Get Tools and Features..., which opens the Visual Studio Installer. Visual Studio インストーラーが起動します。The Visual Studio Installer launches. [C++ によるデスクトップ開発] ワークロード、 [変更] の順に選択します。Choose the Desktop development with C++ workload, then choose Modify.

プロジェクトを作成するCreate a project

まず、C++ コンソール プロジェクトを作成します。First, you'll create a C++ console application project. このプロジェクトの種類には、必要となるすべてのテンプレート ファイルが付属していますので、何も追加する必要はありません。The project type comes with all the template files you'll need, before you've even added anything!

  1. Visual Studio 2017 を開きます。Open Visual Studio 2017.

  2. 上部のメニュー バーから、 [ファイル] > [新規作成] > [プロジェクト] の順に選択します。From the top menu bar, choose File > New > Project.

  3. 左側のウィンドウの [新しいプロジェクト] ダイアログ ボックスで、 [Visual C++] を展開し、 [Windows デスクトップ] を選択します。In the New Project dialog box in the left pane, expand Visual C++ and then choose Windows Desktop. 中央のウィンドウで、 [Windows コンソール アプリケーション] を選択します。In the middle pane, choose Windows Console Application. 次に、プロジェクトに get-started-debugging という名前を指定します。Then name the project get-started-debugging.

    [コンソール アプリ] プロジェクト テンプレートが表示されない場合は、 [新しいプロジェクト] ダイアログ ボックスの左側のウィンドウにある [Visual Studio インストーラーを開く] リンクを選択します。If you don't see the Console App project template, choose the Open Visual Studio Installer link in the left pane of the New Project dialog box. Visual Studio インストーラーが起動します。The Visual Studio Installer launches. [.NET Core クロスプラットフォームの開発] ワークロードを選択し、 [変更] を選択します。Choose the .NET Core cross-platform development workload, and then choose Modify.

  4. [OK] をクリックします。Click OK.

    Visual Studio によってその新しいプロジェクトが開かれます。Visual Studio opens your new project.

  1. Visual Studio 2019 を開きます。Open Visual Studio 2019.

    スタート ウィンドウが開いていない場合は、 [ファイル][スタート ウィンドウ] の順に選択します。If the start window is not open, choose File > Start Window.

  2. スタート ウィンドウで、 [新しいプロジェクトの作成] を選択します。On the start window, choose Create a new project.

  3. [新しいプロジェクトの作成] ウィンドウで、検索ボックスに「コンソール」と入力またはタイプします。On the Create a new project window, enter or type console in the search box. 次に、言語の一覧から [C++] を選択し、プラットフォームの一覧から [Windows] を選択します。Next, choose C++ from the Language list, and then choose Windows from the Platform list.

    言語およびプラットフォームのフィルターを適用してから、 [コンソール アプリ] テンプレートを選択して、 [次へ] を選択します。After you apply the language and platform filters, choose the Console App template, and then choose Next.

    コンソール アプリ用の C++ テンプレートを選択する

    注意

    [コンソール アプリ] テンプレートが表示されない場合は、 [新しいプロジェクトの作成] ウィンドウからそれをインストールすることができます。If you do not see the Console App template, you can install it from the Create a new project window. [お探しの情報が見つかりませんでしたか?] メッセージで、 [さらにツールと機能をインストールする] リンクを選択します。In the Not finding what you're looking for? message, choose the Install more tools and features link. 次に、Visual Studio インストーラーで、 [C++ によるデスクトップ開発] ワークロードを選択します。Then, in the Visual Studio Installer, choose the Desktop development with C++ workload.

  4. [新しいプロジェクトの構成] ウィンドウの [プロジェクト名] ボックスに「get-started-debugging」とタイプまたは入力します。In the Configure your new project window, type or enter get-started-debugging in the Project name box. 次に、 [作成] を選択します。Then, choose Create.

    Visual Studio によってその新しいプロジェクトが開かれます。Visual Studio opens your new project.

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

  1. get-started-debugging.cpp で、既定のコードのすべてを次のコードに置き換えます。In get-started-debugging.cpp, replace all of the default code with the following code instead:

    #include <string>
    #include <vector>
    #include <iostream>
    
    void SendMessage(const std::wstring& name, int msg)
    {
        std::wcout << L"Hello, " << name << L"! Count to " << msg << std::endl;
    }
    
    int main()
    {
        std::vector<wchar_t> letters = { L'f', L'r', L'e', L'd', L' ', L's', L'm', L'i', L't', L'h' };
        std::wstring name = L"";
        std::vector<int> a(10);
        std::wstring key = L"";
    
        for (int i = 0; i < letters.size(); i++)
        {
            name += letters[i];
            a[i] = i + 1;
            SendMessage(name, a[i]);
        }
        std::wcin >> key;
        return 0;
    }
    

デバッガーを起動するStart the debugger!

  1. F5 キー ( [デバッグ] > [デバッグの開始] ) を押すか、デバッグ ツールバーの [デバッグの開始] ボタン デバッグの開始 を押します。Press F5 (Debug > Start Debugging) or the Start Debugging button Start Debugging in the Debug Toolbar.

    F5 キーを押すと、デバッガーがアプリ プロセスにアタッチされた状態でアプリが起動されますが、現時点で、コードを調べるために特別なことは何も行っていません。F5 starts the app with the debugger attached to the app process, but right now we haven't done anything special to examine the code. したがって、アプリが読み込まれたにすぎず、コンソール出力が表示されます。So the app just loads and you see the console output.

    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
    

    このチュートリアルでは、デバッガーを使用してこのアプリを詳しく見て行くと共に、デバッガーの機能についても説明します。In this tutorial, we'll take a closer look at this app using the debugger and get a look at the debugger features.

  2. 赤色の停止 デバッグの停止 ボタンを押して、デバッガーを停止します (Shift + F5 キー)。Stop the debugger by pressing the red stop Stop Debugging button (Shift + F5).

  3. コンソール ウィンドウで、任意のキーを押し、Enter キーを押してコンソール ウィンドウを閉じます。In the console window, press a key and Enter to close the console window.

ブレークポイントを設定し、デバッガーを開始するSet a breakpoint and start the debugger

  1. main 関数の for ループ内で、ブレークポイントを設定します。そのためには、次のコード行の左余白をクリックします。In the for loop of the main function, set a breakpoint by clicking the left margin of the following line of code:

    name += letters[i];

    ブレークポイントを設定した場所に赤い円 ブレークポイント が表示されます。A red circle Breakpoint appears where you set the breakpoint.

    ブレークポイントは、信頼できるデバッグの最も基本的で重要な機能の 1 つです。Breakpoints are one of the most basic and essential features of reliable debugging. ブレークポイントは、Visual Studio が実行コードを中断する場所を示します。これにより、変数の値またはメモリの動作を確認したり、コードの分岐が実行されるかどうかを確認したりすることができます。A breakpoint indicates where Visual Studio should suspend your running code so you can take a look at the values of variables, or the behavior of memory, or whether or not a branch of code is getting run.

  2. F5 キーを押すか、 [デバッグの開始] ボタン デバッグの開始 を押します。アプリが起動され、ブレークポイントを設定したコード行までデバッガーが実行されます。Press F5 or the Start Debugging button Start Debugging, the app starts, and the debugger runs to the line of code where you set the breakpoint.

    ブレークポイントを設定してそこにヒットする

    黄色の矢印はデバッガーが一時停止しているステートメントを表します。デバッガーの一時停止によってアプリの実行も同じポイントで中断されます (このステートメントはまだ実行されていません)。The yellow arrow represents the statement on which the debugger paused, which also suspends app execution at the same point (this statement has not yet executed).

    アプリがまだ実行されていない場合、F5 キーを押すとデバッガーが起動し、最初のブレークポイントで停止します。If the app is not yet running, F5 starts the debugger and stops at the first breakpoint. それ以外の場合、F5 キーを押すと、アプリの実行が続行され、次のブレークポイントまで進みます。Otherwise, F5 continues running the app to the next breakpoint.

    ブレークポイントは、詳細に調べたいコード行またはコード セクションがわかっている場合に便利な機能です。Breakpoints are a useful feature when you know the line of code or the section of code that you want to examine in detail. 条件付きブレークポイントなど、設定できるさまざまな種類のブレークポイントについては、ブレークポイントの使用に関するページを参照してください。For information on the different types of breakpoints you can set, such as conditional breakpoints, see Using breakpoints.

ほとんどの場合、ここではキーボード ショートカットを使用します。それはデバッガーでご自分のアプリをすばやく実行するのに便利な方法だからです (コマンド メニューなどの対応するコマンドはかっこ内に示します)。Mostly, we use the keyboard shortcuts here, because it's a good way to get fast at executing your app in the debugger (equivalent commands such as menu commands are shown in parentheses).

  1. main メソッド内の for ループで一時停止している間に、F11 キーを 2 度押して (または [デバッグ]、[ステップ イン] の順に選択して)、SendMessage メソッド呼び出しに進みます。While paused in the for loop in the main method, press F11 (or choose Debug > Step Into) twice to to advance to the SendMessage method call.

    F11 キーを 2 回押したら、次のコード行が表示されるはずです。After pressing F11 twice, you should be at this line of code:

    SendMessage(name, a[i]);

  2. F11 キーをもう一度押して SendMessage メソッドにステップインします。Press F11 one more time to step into the SendMessage method.

    黄色のポインターが SendMessage メソッドに進みます。The yellow pointer advances into the SendMessage method.

    F11 キーを使用してコードにステップ インするUse F11 to Step Into code

    F11 キーは [ステップ イン] コマンドであり、アプリの実行が一度に 1 ステートメント進められます。F11 is the Step Into command and advances the app execution one statement at a time. F11 キーは実行フローを最も詳しく確認することができる便利な方法です。F11 is a good way to examine the execution flow in the most detail. (他にコード内をより速く移動するためのオプションについても紹介します)既定では、非ユーザー コードはデバッガーによってスキップされます (詳細については、マイ コードのみに関するページを参照)。(To move faster through code, we show you some other options also.) By default, the debugger skips over non-user code (if you want more details, see Just My Code).

    たとえば、SendMessage メソッドの確認を終了しました。そこで、このメソッドからは抜け出したいけれども、デバッガーには留まっていたいとします。Let's say that you are done examining the SendMessage method, and you want to get out of the method but stay in the debugger. これを行うには、 [ステップ アウト] コマンドを使用します。You can do this using the Step Out command.

  3. Shift + F11 キーを押します (または [デバッグ] > [ステップ アウト] の順に選択します)。Press Shift + F11 (or Debug > Step Out).

    このコマンドを使用すると、アプリの実行が再開され (そしてデバッガーが前へ進められ)、現在のメソッドまたは関数から制御が戻るまで続けられます。This command resumes app execution (and advances the debugger) until the current method or function returns.

    SendMessage メソッド呼び出しで一時停止している、main メソッド内の for ループに戻る必要があります。You should be back in the for loop in the main method, paused at the SendMessage method call.

  4. SendMessage メソッドの呼び出しに再び戻るまで、F11 キーを何度か押します。Press F11 several times until you get back to the SendMessage method call again.

  5. メソッドの呼び出しで一時停止している間に、一度、F10 キーを押します (または、 [デバッグ]、[ステップ オーバー] の順に選択します)。While paused at the method call, press F10 (or choose Debug > Step Over) once.

    F10 キーを使用してコードをステップ オーバーするUse F10 to Step Over code

    今回は、デバッガーが SendMessage メソッドにステップ インしていないことに注目してください。Notice this time that the debugger does not step into the SendMessage method. F10 キーを押すと、ご利用のアプリのコード内の関数またはメソッドにステップ インすることなく、デバッガーが進められます (コードはまだ実行されています)。F10 advances the debugger without stepping into functions or methods in your app code (the code still executes). SendMessage メソッド呼び出し上で (F11 キーではなく) F10 キーを押して、SendMessage 用の実装コードをスキップしました (現時点で関係ないと思われるため)。By pressing F10 on the SendMessage method call (instead of F11), we skipped over the implementation code for SendMessage (which maybe we're not interested in right now). ご利用のコード内を移動するさまざまな方法の詳細については、デバッガーでのコード間の移動に関するページを参照してください。For more information on different ways to move through your code, see Navigate code in the debugger.

  1. F5 キーを押して、ブレークポイントに進みます。Press F5 to advance to the breakpoint.

  2. コード エディター内で下方にスクロールして SendMessage メソッド内の std::wcout 関数にカーソルを合わせ、それによって左側に緑色の [クリックで実行] ボタン クリックで実行 が表示されるのを確認します。In the code editor, scroll down and hover over the std::wcout function in the SendMessage method until the green Run to Click button Run to Click appears on the left. ボタンのヒントには、[ここまで実行します] と表示されます。The tooltip for the button shows "Run execution to here".

    [クリックで実行] 機能を使用するUse the Run to Click feature

    注意

    [クリックで実行] ボタンは Visual Studio 2017Visual Studio 2017 の新機能です。The Run to Click button is new in Visual Studio 2017Visual Studio 2017. (緑色の矢印ボタンが表示されない場合、この例では代わりに F11 キーを使用してデバッガーを適切な場所まで進めます。)(If you don't see the green arrow button, use F11 in this example instead to advance the debugger to the right place.)

  3. [クリックで実行] ボタン クリックで実行 をクリックします。Click the Run to Click button Run to Click.

    デバッガーが std::wcout 関数に進みます。The debugger advances to the std::wcout function.

    このボタンを使用することは、一時的なブレークポイントを設定することに似ています。Using this button is similar to setting a temporary breakpoint. [クリックで実行] はアプリ コードの表示領域内をすばやく移動するのに便利です (開いている任意のファイル内でクリックすることができます)。Run to Click is handy for getting around quickly within a visible region of app code (you can click in any open file).

アプリを簡単に再起動するRestart your app quickly

[デバッグ] ツール バーの [再起動] アプリの再起動 ボタンをクリックします (Ctrl + Shift + F5 キー)。Click the Restart Restart App button in the Debug Toolbar (Ctrl + Shift + F5).

[再起動] を押すと、アプリを停止してからデバッガーを再起動する場合と比較して時間の節約になります。When you press Restart, it saves time versus stopping the app and restarting the debugger. デバッガーは、コードを実行すると最初にヒットするブレークポイントで一時停止します。The debugger pauses at the first breakpoint that is hit by executing code.

デバッガーは、前に for ループ内に設定したブレークポイントで再び停止します。The debugger stops again at the breakpoint you previously set inside the for loop.

データ ヒントを使用して変数を確認するInspect variables with data tips

変数を調べることができる機能は、デバッガーの機能の中でも最も便利な機能の 1 つに挙げられ、それを行うにはさまざまな方法を利用できます。Features that allow you to inspect variables are one of the most useful features of the debugger, and there are different ways to do it. 多くの場合、問題のデバッグを試みるときは、特定のタイミングで変数に期待する値がそのとおりに変数に格納されているかどうかの確認を試みます。Often, when you try to debug an issue, you are attempting to find out whether variables are storing the values that you expect them to have at a particular time.

  1. name += letters[i] ステートメントで一時停止しているときに、letters 変数にカーソルを合わせます。その既定値 size={10} が表示されます。While paused on the name += letters[i] statement, hover over the letters variable and you see it's default value, size={10}.

  2. letters 変数を展開してそのプロパティを表示します。これには変数が含むすべての要素が入っています。Expand the letters variable to see its properties, which include all the elements that the variable contains.

  3. 次に、name 変数にカーソルを合わせると、その現在の値である空の文字列が表示されます。Next, hover over the name variable, and you see its current value, an empty string.

  4. 数回、F5 キーを押して (または [デバッグ][続行] の順に選択して)、for ループを数回繰り返します。ブレークポイントで再び一時停止したら、name 変数にカーソルを合わせて毎回値を確認します。Press F5 (or Debug > Continue) a few times to iterate several times through the for loop, pausing again at the breakpoint, and hovering over the name variable each time to check its value.

    データ ヒントを表示するView a data tip

    変数の値は、for ループが繰り返されるたびに変化し、表示される値は、f、次は fr、その次は fre という具合になります。The value of the variable changes with each iteration of the for loop, showing values of f, then fr, then fre, and so on.

    デバッグ時に、変数のプロパティ値に期待どおりの値が格納されているかどうかをすばやく確認したい場合がよくあります。データ ヒントはそれを行うのに適した方法です。Often, when debugging, you want a quick way to check property values on variables, to see whether they are storing the values that you expect them to store, and the data tips are a good way to do it.

[自動変数] ウィンドウと [ローカル] ウィンドウを使用して変数を確認するInspect variables with the Autos and Locals windows

  1. コード エディターの下部にある [自動変数] ウィンドウを見てください。Look at the Autos window at the bottom of the code editor.

    ウィンドウが閉じている場合は、デバッガーが一時停止している間に、 [デバッグ] > [ウィンドウ] > [自動変数] の順に選択します。If it is closed, open it while paused in the debugger by choosing Debug > Windows > Autos.

    [自動変数] ウィンドウには、変数とその現在の値が表示されます。In the Autos window, you see variables and their current value. [自動変数] ウィンドウには、現在の行または前の行で使用されるすべての変数が表示されます (言語固有の動作についてはドキュメントを参照してください)。The Autos window shows all variables used on the current line or the preceding line (Check documentation for language-specific behavior).

  2. 次に、 [自動変数] ウィンドウの隣にあるタブ内の [ローカル] ウィンドウを見てください。Next, look at the Locals window, in a tab next to the Autos window.

  3. letters 変数を展開して、それに含まれている要素を表示します。Expand the letters variable to show the elements that it contains.

    [ローカル] ウィンドウでの変数の検査Inspect variables in the Locals Window

    [ローカル] ウィンドウを確認すれば、現在のスコープ (現在の実行コンテキスト) に含まれている変数がわかります。The Locals window shows you the variables that are in the current scope, that is, the current execution context.

ウォッチ式を設定するSet a watch

  1. メインのコード エディター ウィンドウで、name 変数を右クリックして、 [ウォッチ式の追加] を選択します。In the main code editor window, right-click the name variable and choose Add Watch.

    コード エディターの下部に [ウォッチ] ウィンドウが表示されます。The Watch window opens at the bottom of the code editor. [ウォッチ] ウィンドウを使用することで、監視する変数 (または式) を指定できます。You can use a Watch window to specify a variable (or an expression) that you want to keep an eye on.

    これで、name 変数に対してウォッチ式が設定されたので、デバッガー内を移動しながらその値の変化を確認することができます。Now, you have a watch set on the name variable, and you can see its value change as you move through the debugger. その他の変数ウィンドウとは異なり、 [ウォッチ] ウィンドウには監視対象の変数が常に表示されます (対象外のときは淡色表示となります)。Unlike the other variable windows, the Watch window always shows the variables that you are watching (they're grayed out when out of scope).

呼び出し履歴を調べるExamine the call stack

  1. for ループ内で一時停止しているときに、 [呼び出し履歴] ウィンドウをクリックします。このウィンドウは既定では右下ペイン内に表示されます。While paused in the for loop, click the Call Stack window, which is by default open in the lower right pane.

    ウィンドウが閉じている場合は、デバッガーが一時停止している間に、 [デバッグ] > [ウィンドウ] > [呼び出し履歴] の順に選択します。If it is closed, open it while paused in the debugger by choosing Debug > Windows > Call Stack.

  2. デバッガーが SendMessage メソッド内で一時停止するのを確認できるまで、F11 キーを数回押します。Click F11 a few times until you see the debugger pause in the SendMessage method. [呼び出し履歴] ウィンドウを見てください。Look at the Call Stack window.

    呼び出し履歴を調べるExamine the call stack

    [呼び出し履歴] ウィンドウには、メソッドおよび関数が呼び出されている順番が表示されます。The Call Stack window shows the order in which methods and functions are getting called. 先頭行には、現在の関数が表示されます (このアプリでは SendMessage メソッド)。The top line shows the current function (the SendMessage method in this app). 2 行目には、SendMessagemain メソッドから呼び出されたことが表示され、後もこのような具合に表示されます。The second line shows that SendMessage was called from the main method, and so on.

    注意

    [呼び出し履歴] ウィンドウは、Eclipse のような一部の IDE におけるデバッグ パースペクティブに似ています。The Call Stack window is similar to the Debug perspective in some IDEs like Eclipse.

    呼び出し履歴は、アプリの実行フローを調査して理解するのに優れた方法です。The call stack is a good way to examine and understand the execution flow of an app.

    コード行をダブルクリックすることで、ソース コードに移動できます。また、それによって、デバッガーで検査されている現在のスコープを変更することもできます。You can double-click a line of code to go look at that source code and that also changes the current scope being inspected by the debugger. このアクションを行っても、デバッガーは前に進みません。This action does not advance the debugger.

    [呼び出し履歴] ウィンドウから右クリック メニューを使用して他の操作を行うこともできます。You can also use right-click menus from the Call Stack window to do other things. たとえば、指定した関数にブレークポイントを挿入したり、 [カーソル行の前まで実行] を使用してデバッガーを進めたり、ソース コードの調査を開始したりできます。For example, you can insert breakpoints into specified functions, advance the debugger using Run to Cursor, and go examine source code. 詳細については、呼び出し履歴を調べる」を参照してください。For more information, see How to: Examine the Call Stack.

実行フローを変更するChange the execution flow

  1. F11 キーを 2 回押して、std::wcout 関数を実行します。Press F11 twice to run the std::wcout function.

  2. SendMessage メソッド呼び出し内でデバッガーが一時停止した状態で、マウスを使用して左側にある黄色の矢印 (実行ポインター) をつかみ、その黄色の矢印を 1 行上に移動して、std::wcout に戻ります。With the debugger paused in the SendMessage method call, use the mouse to grab the yellow arrow (the execution pointer) on the left and move the yellow arrow up one line, back to std::wcout.

  3. F11 キーを押します。Press F11.

    デバッガーにより std::wcout 関数が返されます (これはコンソール ウィンドウの出力に表示されます)。The debugger reruns the std::wcout function (you see this in the console window output).

    実行フローを変更することにより、さまざまなコード実行パスをテストしたり、デバッガーを再起動することなくコードを再実行したりできます。By changing the execution flow, you can do things like test different code execution paths or rerun code without restarting the debugger.

    警告

    多くの場合、この機能には注意する必要があり、ツールヒントに警告が表示されます。Often you need to be careful with this feature, and you see a warning in the tooltip. 他の警告が表示される場合もあります。You may see other warnings, too. ポインターを移動しても、ご利用のアプリを以前のアプリ状態に戻すことはできません。Moving the pointer cannot revert your application to an earlier app state.

  4. F5 キーを押してアプリの実行を続行します。Press F5 to continue running the app.

    これでこのチュートリアルは完了です。Congratulations on completing this tutorial!

次の手順Next steps

このチュートリアルでは、デバッガーを起動する方法、コードをステップ実行する方法、変数を確認する方法について学習しました。In this tutorial, you've learned how to start the debugger, step through code, and inspect variables. 必要に応じて、デバッガー機能の概要と、詳細情報へのリンクを取得します。You may want to get a high-level look at debugger features along with links to more information.