チュートリアル: Visual Studio を使用して .NET コンソール アプリケーションをデバッグする

このチュートリアルでは、Visual Studio で使用できるデバッグ ツールについて説明します。

重要

すべてのキーボード ショートカットは、Visual Studio の既定値に基づいています。 キーボード ショートカットは異なる場合があります。詳細については、「 Visual Studio のキーボード ショートカット」を参照してください。

前提条件

デバッグ ビルド構成の使用

"デバッグ" と "リリース" は、Visual Studio の組み込みビルド構成です。 デバッグ用のデバッグ ビルド構成と、最終リリース配布用のリリース構成を使用します。

デバッグ構成では、プログラムのコンパイルにシンボリック デバッグ情報が完全に含まれ、最適化は行われません。 ソース コードと生成された命令の関係は非常に複雑であり、最適化を行うとデバッグが困難になるためです。 プログラムのリリース構成は、シンボリック デバッグ情報を含まず、完全に最適化されます。

既定では、Visual Studio ではデバッグ ビルド構成が使用されるため、デバッグの前に変更を加える必要はありません。

  1. Visual Studio を起動します。

  2. Visual Studio を使用して .NET コンソール アプリケーションを作成する」で作成したプロジェクトを開きます。

    現時点のビルド構成はツールバーに表示されています。 次のツール バーの画像では、アプリのデバッグ バージョンをコンパイルするように Visual Studio が構成されています。

    Visual Studio toolbar with debug highlighted

ブレークポイントの設定

"ブレークポイント" によって、ブレークポイントを含む行が実行される前に、アプリケーションの実行が一時的に中断されます。

  1. 名前、日付、時刻を表示する行のコード ウィンドウの左側の余白をクリックして、その行に "ブレークポイント" 設定します。 左余白は、行番号の左側にあります。 ブレークポイントを設定する他の 1 つの方法は、コード行にカーソルを置き、F9 キーを押すか、メニュー バーから [デバッグ][ブレークポイントの設定/解除] の順に選択することです。

    次の図のとおり、Visual Studio では、ブレークポイントが設定された行を強調表示し、左端の余白に赤い点を表示することで、その行を示しています。

    Visual Studio Program window with breakpoint set

  2. F5 キーを押して、プログラムをデバッグ モードで実行します。 デバッグを開始するもう 1 つの方法は、メニューから [デバッグ]>[デバッグの開始] を選択することです。

  3. プログラムが名前の入力を求めたら、コンソール ウィンドウに文字列を入力して、Enter キーを押します。

  4. プログラムがブレークポイントに到達すると、プログラム実行は停止します。Console.WriteLine メソッドが実行される前にも停止します。 [ローカル] ウィンドウには、現在実行しているメソッドで定義されている変数の値が表示されます。

    Screenshot of a breakpoint in Visual Studio

[イミディエイト] ウィンドウを使用する

[イミディエイト] ウィンドウでは、デバッグ中のアプリケーションと対話できます。 変数の値を対話的に変更して、プログラムにどのような影響があるかを確認できます。

  1. [イミディエイト] ウィンドウが表示されない場合は、[デバッグ]>[Windows]>[イミディエイト] の順に選択して表示します。

  2. [イミディエイト] ウィンドウに「name = "Gracie"」と入力して、Enter キーを押します。

  3. [イミディエイト] ウィンドウに「currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()」と入力して、Enter キーを押します。

    [イミディエイト] ウィンドウに、文字列変数の値と、DateTime 値のプロパティが表示されます。 さらに、変数の値は [ローカル] ウィンドウで更新されます。

    Locals and Immediate Windows in Visual Studio 2019

  4. F5 キーを押して、プログラムの実行を続行します。 続行するもう 1 つの方法は、メニューから [デバッグ]>[続行] を選択することです。

    コンソール ウィンドウに表示される値は、[イミディエイト] ウィンドウで行った変更に対応しています。

    Console window showing the entered values

  5. 任意のキーを押してアプリケーションを終了し、デバッグを停止します。

条件付きブレークポイントの設定

プログラムによって、ユーザーが入力した文字列が表示されます。 ユーザーが何も入力しないとどうなるでしょうか。 これは、"条件付きブレークポイント" と呼ばれる便利なデバッグ機能を使用してテストできます。

  1. ブレークポイントを表す赤丸を右クリックします。 コンテキスト メニューで [条件] を選んで、[ブレークポイント設定] ダイアログを開きます。 [条件] のチェック ボックスをオンにします (まだオンになっていない場合)。

    Editor showing breakpoint settings panel - C#

  2. [条件式] には、x が 5 かどうかをテストするコード例を示す次のコードをフィールドに入力します。

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    ブレークポイントにヒットするたびに、デバッガーは String.IsNullOrEmpty(name) メソッドを呼び出し、メソッド呼び出しが true を返す場合にのみ、この行で中断します。

    条件式の代わりに、"ヒット カウント" を指定できます。この場合、ステートメントが指定された回数実行される前にプログラムの実行が中断されます。 もう 1 つのオプションは、"フィルター条件" を指定することです。これにより、スレッド識別子、プロセス名、またはスレッド名などの属性に基づいてプログラムの実行が中断されます。

  3. 閉じる を選択して、ダイアログ ボックスを閉じます。

  4. F5 を押して、デバッグとともにプログラムを開始します。

  5. コンソール ウィンドウで、名前の入力を求められたら、Enter キーを押します。

  6. 指定した条件 (namenull または String.Empty のどちらか) が満たされたため、ブレークポイントに到達すると、Console.WriteLine メソッドが実行される前に、プログラムの実行が停止します。

  7. [ローカル] ウィンドウを選ぶと、現在実行しているメソッドに対してローカルな変数の値が表示されます。 この場合、Main は現在実行中のメソッドです。 name 変数の値が "" または String.Empty であることを調べます。

  8. [イミディエイト] ウィンドウに次のステートメントを入力し、Enter キーを押して、値が空の文字列であることを確認します。 結果は true になります。

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    疑問符は、イミディエイト ウィンドウに、式を評価するように指示します。

    Immediate Window returning a value of true after the statement is executed - C#

  9. F5 キーを押して、プログラムの実行を続行します。

  10. 任意のキーを押してコンソール ウィンドウを閉じ、デバッグを停止します。

  11. コード ウィンドウの左余白のドットをクリックして、ブレークポイントをクリアします。 ブレークポイントをクリアするその他の方法としては、コード行を選択した状態で F9 キーを押すか、[デバッグ] > [ブレークポイントの設定/解除] の順に選択します。

プログラムのステップ実行

Visual Studio では、1 行ずつプログラムをステップ実行して、実行を監視することもできます。 通常は、ブレークポイントを設定して、プログラム コードのごく一部を通じてプログラム フローに従います。 このプログラムは小さいため、次の手順に従ってプログラム全体をステップ実行できます。

  1. [デバッグ]>[ステップ イン] の順に選択します。 1 つのステートメントを一度にデバッグするもう 1 つの方法は、F11 キーを押すことです。

    次に実行される行が強調表示されて、横に矢印が表示されます。

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    この時点で、[ローカル] ウィンドウに args 配列が空であることが示され、namecurrentDate には既定値が設定されています。 さらに、空のコンソール ウィンドウが開かれています。

  2. **F11** キーを押します。 次に実行される行が強調表示されます。 [ローカル] ウィンドウは変更されず、コンソール ウィンドウは空白のままになります。

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. **F11** キーを押します。 name の変数代入を含むステートメントが強調表示されます。 [ローカル] ウィンドウに namenull であると表示され、コンソール ウィンドウに "What is your name?" という文字列が表示されます。

  4. コンソール ウィンドウに文字列を入力し、Enter キーを押して、このプロンプトに応答します。 コンソールは応答せず、入力した文字列はコンソール ウィンドウに表示されませんが、それでも Console.ReadLine メソッドにより入力が取り込まれます。

  5. **F11** キーを押します。 currentDate の変数代入を含むステートメントが強調表示されます。 [ローカル] ウィンドウには、Console.ReadLine メソッドの呼び出しによって返された値が表示されます。 コンソール ウィンドウには、プロンプトで入力した文字列も表示されます。

  6. **F11** キーを押します。 [ローカル] ウィンドウには、DateTime.Now プロパティから代入された後の currentDate 変数の値が表示されます。 コンソール ウィンドウに変更はありません。

  7. **F11** キーを押します。 Visual Studio は、Console.WriteLine(String, Object, Object) メソッドを呼び出します。 コンソール ウィンドウには書式設定された文字列が表示されます。

  8. [デバッグ]>[ステップ アウト] の順に選択します。ステップ バイ ステップの実行を停止するもう 1 つの方法は、Shift+F11 キーを押すことです。

    コンソール ウィンドウにメッセージが表示され、任意のキーを押すよう求められます。

  9. 任意のキーを押してコンソール ウィンドウを閉じ、デバッグを停止します。

リリース ビルド構成を使用する

アプリケーションのデバッグ バージョンのテストが終了したら、リリース バージョンもコンパイルしてテストする必要があります。 リリース バージョンには、アプリケーションの動作に悪影響を与える可能性があるコンパイラの最適化が組み込まれています。 たとえば、パフォーマンスを向上させるように設計されたコンパイラの最適化では、マルチスレッド アプリケーションで競合状態が生じる場合があります。

コンソール アプリケーションのリリース バージョンをビルドしてテストするには、ツール バーのビルド構成を [デバッグ] から [リリース] に変更します。

default Visual Studio toolbar with release highlighted

F5 キーを押すか、[ビルド] メニューの [ソリューションのビルド] を選ぶと、アプリケーションのリリース バージョンが Visual Studio でコンパイルされます。 それをデバッグ バージョンと同様にテストできます。

次のステップ

このチュートリアルでは、Visual Studio のデバッグ ツールを使用しました。 次のチュートリアルでは、アプリの展開可能なバージョンを発行します。

このチュートリアルでは、Visual Studio で使用できるデバッグ ツールについて説明します。

重要

すべてのキーボード ショートカットは、Visual Studio の既定値に基づいています。 キーボード ショートカットは異なる場合があります。詳細については、「 Visual Studio のキーボード ショートカット」を参照してください。

前提条件

デバッグ ビルド構成の使用

"デバッグ" と "リリース" は、Visual Studio の組み込みビルド構成です。 デバッグ用のデバッグ ビルド構成と、最終リリース配布用のリリース構成を使用します。

デバッグ構成では、プログラムのコンパイルにシンボリック デバッグ情報が完全に含まれ、最適化は行われません。 ソース コードと生成された命令の関係は非常に複雑であり、最適化を行うとデバッグが困難になるためです。 プログラムのリリース構成は、シンボリック デバッグ情報を含まず、完全に最適化されます。

既定では、Visual Studio ではデバッグ ビルド構成が使用されるため、デバッグの前に変更を加える必要はありません。

  1. Visual Studio を起動します。

  2. Visual Studio を使用して .NET コンソール アプリケーションを作成する」で作成したプロジェクトを開きます。

    現時点のビルド構成はツールバーに表示されています。 次のツール バーの画像では、アプリのデバッグ バージョンをコンパイルするように Visual Studio が構成されています。

    Visual Studio toolbar with debug highlighted

ブレークポイントの設定

"ブレークポイント" によって、ブレークポイントを含む行が実行される前に、アプリケーションの実行が一時的に中断されます。

  1. 名前、日付、時刻を表示する行のコード ウィンドウの左側の余白をクリックして、その行に "ブレークポイント" 設定します。 左余白は、行番号の左側にあります。 ブレークポイントを設定する他の 1 つの方法は、コード行にカーソルを置き、F9 キーを押すか、メニュー バーから [デバッグ][ブレークポイントの設定/解除] の順に選択することです。

    次の図のとおり、Visual Studio では、ブレークポイントが設定された行を強調表示し、左端の余白に赤い点を表示することで、その行を示しています。

    Visual Studio Program window with breakpoint set

  2. F5 キーを押して、プログラムをデバッグ モードで実行します。 デバッグを開始するもう 1 つの方法は、メニューから [デバッグ]>[デバッグの開始] を選択することです。

  3. プログラムが名前の入力を求めたら、コンソール ウィンドウに文字列を入力して、Enter キーを押します。

  4. プログラムがブレークポイントに到達すると、プログラム実行は停止します。Console.WriteLine メソッドが実行される前にも停止します。 [ローカル] ウィンドウには、現在実行しているメソッドで定義されている変数の値が表示されます。

    Screenshot of a breakpoint in Visual Studio

[イミディエイト] ウィンドウを使用する

[イミディエイト] ウィンドウでは、デバッグ中のアプリケーションと対話できます。 変数の値を対話的に変更して、プログラムにどのような影響があるかを確認できます。

  1. [イミディエイト] ウィンドウが表示されない場合は、[デバッグ]>[Windows]>[イミディエイト] の順に選択して表示します。

  2. [イミディエイト] ウィンドウに「name = "Gracie"」と入力して、Enter キーを押します。

  3. [イミディエイト] ウィンドウに「currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()」と入力して、Enter キーを押します。

    [イミディエイト] ウィンドウに、文字列変数の値と、DateTime 値のプロパティが表示されます。 さらに、変数の値は [ローカル] ウィンドウで更新されます。

    Locals and Immediate Windows in Visual Studio 2019

  4. F5 キーを押して、プログラムの実行を続行します。 続行するもう 1 つの方法は、メニューから [デバッグ]>[続行] を選択することです。

    コンソール ウィンドウに表示される値は、[イミディエイト] ウィンドウで行った変更に対応しています。

    Console window showing the entered values

  5. 任意のキーを押してアプリケーションを終了し、デバッグを停止します。

条件付きブレークポイントの設定

プログラムによって、ユーザーが入力した文字列が表示されます。 ユーザーが何も入力しないとどうなるでしょうか。 これは、"条件付きブレークポイント" と呼ばれる便利なデバッグ機能を使用してテストできます。

  1. ブレークポイントを表す赤丸を右クリックします。 コンテキスト メニューで [条件] を選んで、[ブレークポイント設定] ダイアログを開きます。 [条件] のチェック ボックスをオンにします (まだオンになっていない場合)。

    Editor showing breakpoint settings panel - C#

  2. [条件式] には、x が 5 かどうかをテストするコード例を示す次のコードをフィールドに入力します。

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    ブレークポイントにヒットするたびに、デバッガーは String.IsNullOrEmpty(name) メソッドを呼び出し、メソッド呼び出しが true を返す場合にのみ、この行で中断します。

    条件式の代わりに、"ヒット カウント" を指定できます。この場合、ステートメントが指定された回数実行される前にプログラムの実行が中断されます。 もう 1 つのオプションは、"フィルター条件" を指定することです。これにより、スレッド識別子、プロセス名、またはスレッド名などの属性に基づいてプログラムの実行が中断されます。

  3. 閉じる を選択して、ダイアログ ボックスを閉じます。

  4. F5 を押して、デバッグとともにプログラムを開始します。

  5. コンソール ウィンドウで、名前の入力を求められたら、Enter キーを押します。

  6. 指定した条件 (namenull または String.Empty のどちらか) が満たされたため、ブレークポイントに到達すると、Console.WriteLine メソッドが実行される前に、プログラムの実行が停止します。

  7. [ローカル] ウィンドウを選ぶと、現在実行しているメソッドに対してローカルな変数の値が表示されます。 この場合、Main は現在実行中のメソッドです。 name 変数の値が "" または String.Empty であることを調べます。

  8. [イミディエイト] ウィンドウに次のステートメントを入力し、Enter キーを押して、値が空の文字列であることを確認します。 結果は true になります。

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    疑問符は、イミディエイト ウィンドウに、式を評価するように指示します。

    Immediate Window returning a value of true after the statement is executed - C#

  9. F5 キーを押して、プログラムの実行を続行します。

  10. 任意のキーを押してコンソール ウィンドウを閉じ、デバッグを停止します。

  11. コード ウィンドウの左余白のドットをクリックして、ブレークポイントをクリアします。 ブレークポイントをクリアするその他の方法としては、コード行を選択した状態で F9 キーを押すか、[デバッグ] > [ブレークポイントの設定/解除] の順に選択します。

プログラムのステップ実行

Visual Studio では、1 行ずつプログラムをステップ実行して、実行を監視することもできます。 通常は、ブレークポイントを設定して、プログラム コードのごく一部を通じてプログラム フローに従います。 このプログラムは小さいため、次の手順に従ってプログラム全体をステップ実行できます。

  1. [デバッグ]>[ステップ イン] の順に選択します。 1 つのステートメントを一度にデバッグするもう 1 つの方法は、F11 キーを押すことです。

    次に実行される行が強調表示されて、横に矢印が表示されます。

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    この時点で、[ローカル] ウィンドウに args 配列が空であることが示され、namecurrentDate には既定値が設定されています。 さらに、空のコンソール ウィンドウが開かれています。

  2. **F11** キーを押します。 次に実行される行が強調表示されます。 [ローカル] ウィンドウは変更されず、コンソール ウィンドウは空白のままになります。

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. **F11** キーを押します。 name の変数代入を含むステートメントが強調表示されます。 [ローカル] ウィンドウに namenull であると表示され、コンソール ウィンドウに "What is your name?" という文字列が表示されます。

  4. コンソール ウィンドウに文字列を入力し、Enter キーを押して、このプロンプトに応答します。 コンソールは応答せず、入力した文字列はコンソール ウィンドウに表示されませんが、それでも Console.ReadLine メソッドにより入力が取り込まれます。

  5. **F11** キーを押します。 currentDate の変数代入を含むステートメントが強調表示されます。 [ローカル] ウィンドウには、Console.ReadLine メソッドの呼び出しによって返された値が表示されます。 コンソール ウィンドウには、プロンプトで入力した文字列も表示されます。

  6. **F11** キーを押します。 [ローカル] ウィンドウには、DateTime.Now プロパティから代入された後の currentDate 変数の値が表示されます。 コンソール ウィンドウに変更はありません。

  7. **F11** キーを押します。 Visual Studio は、Console.WriteLine(String, Object, Object) メソッドを呼び出します。 コンソール ウィンドウには書式設定された文字列が表示されます。

  8. [デバッグ]>[ステップ アウト] の順に選択します。ステップ バイ ステップの実行を停止するもう 1 つの方法は、Shift+F11 キーを押すことです。

    コンソール ウィンドウにメッセージが表示され、任意のキーを押すよう求められます。

  9. 任意のキーを押してコンソール ウィンドウを閉じ、デバッグを停止します。

リリース ビルド構成を使用する

アプリケーションのデバッグ バージョンのテストが終了したら、リリース バージョンもコンパイルしてテストする必要があります。 リリース バージョンには、アプリケーションの動作に悪影響を与える可能性があるコンパイラの最適化が組み込まれています。 たとえば、パフォーマンスを向上させるように設計されたコンパイラの最適化では、マルチスレッド アプリケーションで競合状態が生じる場合があります。

コンソール アプリケーションのリリース バージョンをビルドしてテストするには、ツール バーのビルド構成を [デバッグ] から [リリース] に変更します。

default Visual Studio toolbar with release highlighted

F5 キーを押すか、[ビルド] メニューの [ソリューションのビルド] を選ぶと、アプリケーションのリリース バージョンが Visual Studio でコンパイルされます。 それをデバッグ バージョンと同様にテストできます。

次のステップ

このチュートリアルでは、Visual Studio のデバッグ ツールを使用しました。 次のチュートリアルでは、アプリの展開可能なバージョンを発行します。

このチュートリアルでは、Visual Studio で使用できるデバッグ ツールについて説明します。

前提条件

デバッグ ビルド構成の使用

"デバッグ" と "リリース" は、Visual Studio の組み込みビルド構成です。 デバッグ用のデバッグ ビルド構成と、最終リリース配布用のリリース構成を使用します。

デバッグ構成では、プログラムのコンパイルにシンボリック デバッグ情報が完全に含まれ、最適化は行われません。 ソース コードと生成された命令の関係は非常に複雑であり、最適化を行うとデバッグが困難になるためです。 プログラムのリリース構成は、シンボリック デバッグ情報を含まず、完全に最適化されます。

既定では、Visual Studio ではデバッグ ビルド構成が使用されるため、デバッグの前に変更を加える必要はありません。

  1. Visual Studio を起動します。

  2. Visual Studio を使用して .NET コンソール アプリケーションを作成する」で作成したプロジェクトを開きます。

    現時点のビルド構成はツールバーに表示されています。 次のツール バーの画像では、アプリのデバッグ バージョンをコンパイルするように Visual Studio が構成されています。

    Visual Studio toolbar with debug highlighted

ブレークポイントの設定

"ブレークポイント" によって、ブレークポイントを含む行が実行される前に、アプリケーションの実行が一時的に中断されます。

  1. 名前、日付、時刻を表示する行のコード ウィンドウの左側の余白をクリックして、その行に "ブレークポイント" 設定します。 左余白は、行番号の左側にあります。 ブレークポイントを設定する他の 1 つの方法は、コード行にカーソルを置き、F9 キーを押すか、メニュー バーから [デバッグ][ブレークポイントの設定/解除] の順に選択することです。

    次の図のとおり、Visual Studio では、ブレークポイントが設定された行を強調表示し、左端の余白に赤い点を表示することで、その行を示しています。

    Visual Studio Program window with breakpoint set

  2. F5 キーを押して、プログラムをデバッグ モードで実行します。 デバッグを開始するもう 1 つの方法は、メニューから [デバッグ]>[デバッグの開始] を選択することです。

  3. プログラムが名前の入力を求めたら、コンソール ウィンドウに文字列を入力して、Enter キーを押します。

  4. プログラムがブレークポイントに到達すると、プログラム実行は停止します。Console.WriteLine メソッドが実行される前にも停止します。 [ローカル] ウィンドウには、現在実行しているメソッドで定義されている変数の値が表示されます。

    Screenshot of a breakpoint in Visual Studio

[イミディエイト] ウィンドウを使用する

[イミディエイト] ウィンドウでは、デバッグ中のアプリケーションと対話できます。 変数の値を対話的に変更して、プログラムにどのような影響があるかを確認できます。

  1. [イミディエイト] ウィンドウが表示されない場合は、[デバッグ]>[Windows]>[イミディエイト] の順に選択して表示します。

  2. [イミディエイト] ウィンドウに「name = "Gracie"」と入力して、Enter キーを押します。

  3. [イミディエイト] ウィンドウに「currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()」と入力して、Enter キーを押します。

    [イミディエイト] ウィンドウに、文字列変数の値と、DateTime 値のプロパティが表示されます。 さらに、変数の値は [ローカル] ウィンドウで更新されます。

    Locals and Immediate Windows in Visual Studio 2019

  4. F5 キーを押して、プログラムの実行を続行します。 続行するもう 1 つの方法は、メニューから [デバッグ]>[続行] を選択することです。

    コンソール ウィンドウに表示される値は、[イミディエイト] ウィンドウで行った変更に対応しています。

    Console window showing the entered values

  5. 任意のキーを押してアプリケーションを終了し、デバッグを停止します。

条件付きブレークポイントの設定

プログラムによって、ユーザーが入力した文字列が表示されます。 ユーザーが何も入力しないとどうなるでしょうか。 これは、"条件付きブレークポイント" と呼ばれる便利なデバッグ機能を使用してテストできます。

  1. ブレークポイントを表す赤丸を右クリックします。 コンテキスト メニューで [条件] を選んで、[ブレークポイント設定] ダイアログを開きます。 [条件] のチェック ボックスをオンにします (まだオンになっていない場合)。

    Editor showing breakpoint settings panel - C#

  2. [条件式] には、x が 5 かどうかをテストするコード例を示す次のコードをフィールドに入力します。

    String.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    ブレークポイントにヒットするたびに、デバッガーは String.IsNullOrEmpty(name) メソッドを呼び出し、メソッド呼び出しが true を返す場合にのみ、この行で中断します。

    条件式の代わりに、"ヒット カウント" を指定できます。この場合、ステートメントが指定された回数実行される前にプログラムの実行が中断されます。 もう 1 つのオプションは、"フィルター条件" を指定することです。これにより、スレッド識別子、プロセス名、またはスレッド名などの属性に基づいてプログラムの実行が中断されます。

  3. 閉じる を選択して、ダイアログ ボックスを閉じます。

  4. F5 を押して、デバッグとともにプログラムを開始します。

  5. コンソール ウィンドウで、名前の入力を求められたら、Enter キーを押します。

  6. 指定した条件 (namenull または String.Empty のどちらか) が満たされたため、ブレークポイントに到達すると、Console.WriteLine メソッドが実行される前に、プログラムの実行が停止します。

  7. [ローカル] ウィンドウを選ぶと、現在実行しているメソッドに対してローカルな変数の値が表示されます。 この場合、Main は現在実行中のメソッドです。 name 変数の値が "" または String.Empty であることを調べます。

  8. [イミディエイト] ウィンドウに次のステートメントを入力し、Enter キーを押して、値が空の文字列であることを確認します。 結果は true になります。

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    疑問符は、イミディエイト ウィンドウに、式を評価するように指示します。

    Immediate Window returning a value of true after the statement is executed - C#

  9. F5 キーを押して、プログラムの実行を続行します。

  10. 任意のキーを押してコンソール ウィンドウを閉じ、デバッグを停止します。

  11. コード ウィンドウの左余白のドットをクリックして、ブレークポイントをクリアします。 ブレークポイントをクリアするその他の方法としては、コード行を選択した状態で F9 キーを押すか、[デバッグ] > [ブレークポイントの設定/解除] の順に選択します。

プログラムのステップ実行

Visual Studio では、1 行ずつプログラムをステップ実行して、実行を監視することもできます。 通常は、ブレークポイントを設定して、プログラム コードのごく一部を通じてプログラム フローに従います。 このプログラムは小さいため、次の手順に従ってプログラム全体をステップ実行できます。 現在デバッグ中ではなく、Visual Studio に焦点を当てています:

  1. [デバッグ]>[ステップ イン] の順に選択します。 1 つのステートメントを一度にデバッグするもう 1 つの方法は、F11 キーを押すことです。

    次に実行される行が強調表示されて、横に矢印が表示されます。

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    この時点で、[ローカル] ウィンドウに args 配列が空であることが示され、namecurrentDate には既定値が設定されています。 さらに、空のコンソール ウィンドウが開かれています。

  2. **F11** キーを押します。 次に実行される行が強調表示されます。 [ローカル] ウィンドウは変更されず、コンソール ウィンドウは空白のままになります。

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. **F11** キーを押します。 name の変数代入を含むステートメントが強調表示されます。 [ローカル] ウィンドウに namenull であると表示され、コンソール ウィンドウに "What is your name?" という文字列が表示されます。

  4. コンソール ウィンドウに文字列を入力し、Enter キーを押して、このプロンプトに応答します。 コンソールは応答せず、入力した文字列はコンソール ウィンドウに表示されませんが、それでも Console.ReadLine メソッドにより入力が取り込まれます。

  5. **F11** キーを押します。 currentDate の変数代入を含むステートメントが強調表示されます。 [ローカル] ウィンドウには、Console.ReadLine メソッドの呼び出しによって返された値が表示されます。 コンソール ウィンドウには、プロンプトで入力した文字列も表示されます。

  6. **F11** キーを押します。 [ローカル] ウィンドウには、DateTime.Now プロパティから代入された後の currentDate 変数の値が表示されます。 コンソール ウィンドウに変更はありません。

  7. **F11** キーを押します。 Visual Studio は、Console.WriteLine(String, Object, Object) メソッドを呼び出します。 コンソール ウィンドウには書式設定された文字列が表示されます。

  8. [デバッグ]>[ステップ アウト] の順に選択します。ステップ バイ ステップの実行を停止するもう 1 つの方法は、Shift+F11 キーを押すことです。

    コンソール ウィンドウにメッセージが表示され、任意のキーを押すよう求められます。

  9. 任意のキーを押してコンソール ウィンドウを閉じ、デバッグを停止します。

リリース ビルド構成を使用する

アプリケーションのデバッグ バージョンのテストが終了したら、リリース バージョンもコンパイルしてテストする必要があります。 リリース バージョンには、アプリケーションの動作に悪影響を与える可能性があるコンパイラの最適化が組み込まれています。 たとえば、パフォーマンスを向上させるように設計されたコンパイラの最適化では、マルチスレッド アプリケーションで競合状態が生じる場合があります。

コンソール アプリケーションのリリース バージョンをビルドしてテストするには、ツール バーのビルド構成を [デバッグ] から [リリース] に変更します。

default Visual Studio toolbar with release highlighted

F5 キーを押すか、[ビルド] メニューの [ソリューションのビルド] を選ぶと、アプリケーションのリリース バージョンが Visual Studio でコンパイルされます。 それをデバッグ バージョンと同様にテストできます。

次のステップ

このチュートリアルでは、Visual Studio のデバッグ ツールを使用しました。 次のチュートリアルでは、アプリの展開可能なバージョンを発行します。