このチュートリアルでは、.NET アプリを操作するために Visual Studio Code で使用できるデバッグ ツールについて説明します。
このチュートリアルでは、.NET アプリを操作するために GitHub Codespaces で使用できるデバッグ ツールについて説明します。
[前提条件]
このチュートリアルは、「Visual Studio Codeを使用して .NET コンソール アプリケーションを作成する
ブレークポイントを設定する
ブレークポイントは、 ブレークポイント のある行が実行される前に、アプリケーションの実行を一時的に中断します。
Visual Studio Code を起動します。
「Visual Studio Code を使用して .NET コンソール アプリケーションを作成する」で作成したプロジェクトのフォルダーを開きます。
Program.cs ファイルを開きます。
コード ウィンドウの左余白をクリックして、名前、日付、時刻を表示する行に ブレークポイント を設定します。 左余白は行番号の左側にあります。 ブレークポイントを設定するその他の方法は、 F9 キーを押すか、コード行が選択されている間にメニューから [実行>ブレークポイント を取得する] を選択することです。
Visual Studio Code は、左余白に赤い点を表示することで、ブレークポイントが設定されている行を示します。
「Visual Studio Code を使用して .NET コンソール アプリケーションを作成する」で作成した GitHub Codespace を開きます。
HelloWorld.cs ファイルを開きます。
コード ウィンドウの左余白をクリックして、名前、日付、時刻を表示する行に ブレークポイント を設定します。 左余白は行番号の左側にあります。 コード行が選択されている間に F9 キーを押してブレークポイントを設定することもできます。
デバッグを開始する
デバッグ と リリース は次のとおりです。NET の組み込みのビルド構成。 デバッグにはデバッグ ビルド構成を使用し、最終リリース配布にはリリース構成を使用します。
既定では、Visual Studio Code の起動設定ではデバッグ ビルド構成が使用されるため、デバッグ前に変更する必要はありません。
左側のメニューの [デバッグ] アイコンを選択して、[デバッグ] ビューを開きます。
[ 実行とデバッグ] を選択します。 メッセージが表示されたら、 C# を選択し、[ C#: スタートアップ プロジェクトを起動する] を選択します。 デバッグ モードでプログラムを起動するその他の方法は、 F5 キーを押すか、メニューから [実行>デバッグの開始 ] を選択することです。
[起動構成の選択] を求められたら、[C#: アクティブ ファイルのデバッグ] を選択します。
[デバッグ コンソール] タブを選択すると、応答を待つ前にプログラムに表示される "名前は何ですか?" というプロンプトが表示されます。
名前のプロンプトに応答して「デバッグ コンソール」ウィンドウに文字列を入力し、「Enterキー」を押します。
ブレークポイントに達すると、
Console.WriteLineメソッドが実行される前に、プログラムの実行が停止します。 [変数] ウィンドウの [ローカル] セクションには、現在実行中のメソッドで定義されている変数の値が表示されます。
既定では、GitHub Codespaces はデバッグ ビルド構成を使用するため、デバッグ前に変更する必要はありません。
左側のメニューの [デバッグ] アイコンを選択して、[デバッグ] ビューを開きます。
[ 実行とデバッグ] を選択します。 メッセージが表示されたら、デバッガーとして [C# ] を選択し、[ C#: アクティブ ファイル を起動構成としてデバッグ] を選択します。
[デバッグ コンソール] タブを選択すると、応答を待つ前にプログラムに表示される "名前は何ですか?" というプロンプトが表示されます。
名前のプロンプトに応答して デバッグ コンソール ウィンドウにテキストを入力し、Enter キーを押します。
ブレークポイントに達すると、
Console.WriteLineメソッドが実行される前に、プログラムの実行が停止します。 [変数] ウィンドウの [ローカル] セクションには、現在実行中のメソッドで定義されている変数の値が表示されます。
デバッグ コンソールを使用する
デバッグ コンソール ウィンドウを使用すると、デバッグしているアプリケーションと対話できます。 変数の値を変更して、プログラムに与える影響を確認できます。
[ デバッグ コンソール ] タブを選択します。
name = "Gracie"] ウィンドウの下部にあるプロンプトに「」と入力し、Enter キーを押します。
currentDate = DateTime.Parse("2026-01-28T20:54:00Z").ToUniversalTime()] ウィンドウの下部に「」と入力し、Enter キーを押します。[ 変数] ウィンドウには、
name変数とcurrentDate変数の新しい値が表示されます。ツール バーの [続行] ボタンを選択して、プログラムの実行を 続行 します。 続行するもう 1 つの方法は、 F5 キーを押すことです。
コンソール ウィンドウに表示される値は、 デバッグ コンソールで行った変更に対応します。
Enter キーを押してアプリケーションを終了し、デバッグを停止します。
条件付きブレークポイントを設定する
プログラムは、ユーザーが入力した文字列を表示します。 ユーザーが何も入力しなかった場合はどうなりますか? これは、条件付きブレークポイントと呼ばれる便利なデバッグ機能を使用してテストできます。
ブレークポイントを表す赤い点を右クリック (macOS では Ctrl キーを押しながらクリック) します。 コンテキスト メニューで [ブレークポイントの 編集] を選択して、条件式を入力できるダイアログを開きます。
ドロップダウンで
Expressionを選択し、次の条件式を入力して Enter キーを押 します。String.IsNullOrEmpty(name)
ブレークポイントにヒットするたびに、デバッガーは
String.IsNullOrEmpty(name)メソッドを呼び出し、メソッド呼び出しがtrueを返す場合にのみ、この行で中断します。条件式の代わりに、ヒットカウントを指定できます。この ヒットカウントは、ステートメントが指定された回数実行される前にプログラムの実行を中断します。 もう 1 つのオプションは、フィルター条件を指定することです。これにより、スレッド識別子、プロセス名、またはスレッド名などの属性に基づいてプログラムの実行が中断されます。
F5キー
押して、デバッグでプログラムを開始します。 [デバッグ コンソール] タブで、名前の入力を求められたら Enter キーを押します。
指定した条件 (
nameがnullまたは String.Emptyのいずれか) を満たしているため、プログラムの実行はブレークポイントに達すると、Console.WriteLineメソッドが実行される前に停止します。[ 変数] ウィンドウには、
name変数の値が""( String.Empty)であることが表示されます。デバッグ コンソールのプロンプトで次のステートメントを入力し、Enter キーを押して、値が空の文字列であることを確認します。 結果は
trueです。name == String.Emptyツール バーの [ 続行 ] ボタンを選択して、プログラムの実行を続行します。
Enter キーを押してプログラムを終了し、デバッグを停止します。
コード ウィンドウの左余白にあるドットをクリックして、ブレークポイントをクリアします。 ブレークポイントをクリアするその他の方法は、 F9 キーを押すか、コード行が選択されている間にメニューから [ブレークポイントの実行] > [ブレークポイントの切り替え ] を選択することです。
ブレークポイントの条件が失われるという警告が表示された場合は、[ ブレークポイントの削除] を選択します。
プログラムのステップ実行
Visual Studio Code では、プログラムを 1 行ずつステップ 実行し、その実行を監視することもできます。 通常は、ブレークポイントを設定し、プログラム コードのごく一部を通してプログラム フローに従います。 このプログラムは小さいので、プログラム全体をステップ実行できます。
「What is your name?」というプロンプトを表示する行のコードにブレークポイントを設定します。
F5 キーを押してデバッグを開始します。
Visual Studio Code でブレークポイント行が強調表示されます。
この時点で、[ 変数] ウィンドウには、
args配列が空であり、nameとcurrentDateに既定値が表示されます。[デバッグ] ツール バーから [ステップ イン ] を選択するか 、F11 キーを押します。
Visual Studio Code では、次の行が強調表示されます。
Visual Studio Code では、名前プロンプトの
Console.WriteLineが実行され、次の実行行が強調表示されます。 次の行は、Console.ReadLineのためのnameです。 [変数] ウィンドウは変更されず、[ターミナル] タブに "名前は何ですか?" というプロンプトが表示されます。[ ステップ イン] を選択するか 、F11 キーを押します。
Visual Studio Code では、
name変数の割り当てが強調表示されます。 変数ウィンドウは、nameがまだnullであることを示しています。ターミナル タブに文字列を入力し、Enter キーを押して、プロンプトに応答 します。
[ デバッグ コンソール ] タブには、入力中に入力した文字列が表示されない場合がありますが、 Console.ReadLine メソッドによって入力がキャプチャされます。
[ ステップ イン] を選択するか 、F11 キーを押します。
Visual Studio Code では、
currentDate変数の割り当てが強調表示されます。 [ 変数] ウィンドウには、 Console.ReadLine メソッドの呼び出しによって返される値が表示されます。 [ ターミナル ] タブには、プロンプトで入力した文字列が表示されます。[ ステップ イン] を選択するか 、F11 キーを押します。
[変数] ウィンドウには、
currentDateプロパティからの代入後のDateTime.Now変数の値が表示されます。[ ステップ イン] を選択するか 、F11 キーを押します。
Visual Studio Code は、 Console.WriteLine(String, Object, Object) メソッドを呼び出します。 コンソール ウィンドウに、書式設定された文字列が表示されます。
[ステップ アウト] を選択するか、Shift キー+F11 キーを押します。
ターミナルに「任意のキーを押して終了...」と表示されます。
任意のキーを押してプログラムを終了します。
リリース ビルド構成を使用する
アプリケーションのデバッグ バージョンをテストしたら、リリース バージョンもコンパイルしてテストする必要があります。 リリース バージョンには、アプリケーションの動作に影響する可能性があるコンパイラの最適化が組み込まれています。 たとえば、パフォーマンスを向上させるために設計されたコンパイラの最適化は、マルチスレッド アプリケーションで競合状態を作成できます。
コンソール アプリケーションのリリース バージョンをビルドしてテストするには、 ターミナル を開き、次のコマンドを実行します。
dotnet run --configuration Release
コンソール アプリケーションのリリース バージョンをビルドしてテストするには、ターミナルで次のコマンドを実行します。
dotnet run --configuration Release HelloWorld.cs
次のステップ
このチュートリアルでは、Visual Studio Code デバッグ ツールを使用しました。 次のチュートリアルでは、アプリのデプロイ可能なバージョンを発行します。
.NET