このドキュメントでは、Visual Studioのデバッグ機能に関するよく寄せられる質問について説明します。 また、デバッグ タスクまたは問題を、Visual Studio デバッガーの関連する機能にマップします。 これらのリンクには、マルチスレッド アプリケーションのデバッグ、コード ナビゲーション、メモリ リーク、変数の検査、ブレークポイントの使用、外部コードのデバッグなどのタスクや問題が含まれています。 デバッガー機能の概要が必要な場合は、「最初にデバッガーの を確認する」を参照してください。
ブレークポイント
実行中のコードを一時停止して、バグが含まれている可能性のあるコード行を検査するにはどうすればよいですか?
ブレークポイントを設定します。 詳細については、「適切な種類のブレークポイント を使用する」および「ブレークポイント の概要」を参照してください。
特定の条件に基づいてコードの実行を一時停止するにはどうすればよいですか?
適切な種類のブレークポイントを設定します。 詳細については、「適切な種類のブレークポイントを使用する」を参照してください。
コードを変更したり停止したりせずに、構成可能な条件下で情報を出力ウィンドウに記録するにはどうすればよいですか?
Tracepoints を使用すると、コードを変更または停止することなく、構成可能な条件下で情報を出力ウィンドウに記録できます。 詳細については、「Visual Studio デバッガーでトレースポイントを使用する」を参照してください。
私のブレークポイントの管理と記録
特定の処理済みまたは未処理の例外がスローされたときに、コードを一時停止してデバッグする
例外ヘルパーにはエラーが発生した場所が表示されますが、特定のエラーを一時停止してデバッグする場合は、例外がスローされたときに中断するようにデバッガーに指示。
呼び出し履歴からブレークポイントを設定
呼び出し履歴の ウィンドウで実行フローを調べたり、関数を表示したりするときにコードを一時停止してデバッグする場合は、「呼び出し履歴ウィンドウでブレークポイントを設定する」を参照してください。
特定のアセンブリ命令でコードを一時停止
これを行うには、逆アセンブル ウィンドウ からブレークポイントを設定します。
コード内を移動する
デバッグ中にコードをステップ実行するコマンドを学習するにはどうすればよいですか?
詳細については、「デバッガーを使用してコードを移動する」を参照してください。
ブレークポイントを削除したり無効にしたりせずに、特定の行にコードを実行することはできますか?
これらのシナリオでは、"Force Run To Cursor" を使用できます。 ブレークポイントは保持でき、デバッガーはカーソルを持つコード行に到達するまでそれらをスキップします。 また、最初に発生する可能性のある例外の中断条件もスキップします。 詳細については、「デバッガーを使用してコードを移動する」を参照してください。
コード行に異なるメソッドの呼び出しがある場合、特定のメソッドにステップインできますか?
コード行を右クリックすると、コンテキスト メニューが表示され、[ステップ イン 固有] を選択できます。 これにより、ステップインできるすべてのメソッドの一覧が表示されます。 目的の方法を選択できるようになりました。
データの検査と視覚化
アプリの実行中に変数の値を確認するにはどうすればよいですか?
データ ヒント を使用するか、[自動変数] と [ローカル] ウィンドウで変数を検査してカーソルを合わせます。
特定の変数の値の変化を確認できますか?
変数にウォッチを設定します。 詳細については、「変数にウォッチを設定する」を参照してください。
デバッガー ウィンドウに長すぎる文字列を表示するにはどうすればよいですか?
データ ヒントやデバッガー ウィンドウで表示するには長すぎる文字列が、文字列ビジュアライザーで示されます。 また、形式が正しくない文字列を識別するのにも役立ちます。
Visual Studio に組み込まれている string ビジュアライザーには、テキスト、XML、HTML、JSON のオプションが含まれています。大規模なコレクション オブジェクトを表示する方法
DataSet ビジュアライザーを使用すると、DataSet、DataTable、DataView、または DataViewManager の内容を表示できます。 IEnumerable ビジュアライザーを使用すると、配列、リストなどのオブジェクトを表示できます。詳細については、「表形式ビジュアライザー する」を参照してください。
既に実行されているアプリをデバッグする
ローカル コンピューターまたはリモート コンピューターで実行中のアプリをデバッグする方法、複数のプロセスを同時にデバッグする方法、Visual Studioで作成されていないアプリをデバッグする方法、またはVisual Studioから起動しなかったアプリをデバッグする方法
実行中のプロセス にアタッチするを参照してください。
同じアプリケーションに繰り返しアタッチするにはどうすればよいですか?
プロセスに再アタッチを使用 (Shift + Alt + P) すると、[プロセスにアタッチ] ダイアログを毎回表示することなく、ワンクリックで簡単にアプリケーションのデバッグを開始できます。 プロセスに再接続するを参照してください。
マルチスレッド アプリケーションをデバッグする
マルチスレッド アプリケーションをデバッグするにはどうすればよいですか? または、アプリケーションがハング状態ですか?
詳細なトラブルシューティングについては、「 並列スタック」ウィンドウ を参照してください。
関数が呼び出される順序を表示するにはどうすればよいですか?
「呼び出し履歴のを表示する方法」を参照してください。
メモリの分析
アプリケーションにメモリ リークがありますか?
スナップショットを作成し、メモリ ツールで開いてトラブルシューティングを進める。 「メモリ使用量を測定する」を参照してください。
ネイティブ またはマネージド アプリケーションのメモリ使用量を分析する方法
ライブ デバッグ、ヒープ ダンプ、またはパフォーマンス プロファイラーを使用して、Visual Studio メモリ ツールを使用します。
「メモリ分析ツールを選択する」を参照してください。デバッガーをアタッチせずにネイティブ アプリケーションまたはマネージド アプリケーションのメモリ使用量を分析するにはどうすればよいですか? メモリ使用量ツールを有効にして、Visual Studio パフォーマンス プロファイラーを使用します。
「メモリ使用量のを分析する」を参照してください。2 つの時点のメモリ使用量を比較できますか。
メモリ ツールのスナップショットを比較するか、差分機能を使用して 2 つのヒープ ダンプを比較します。 「メモリ使用量のを分析する」を参照してください。
外部コードのデバッグ
デバッグ中にユーザー コードのみを表示できますか?
マイ コードのみは、システム、フレームワーク、およびその他の非ユーザー コードの呼び出しを自動的にステップオーバーするVisual Studioデバッグ機能です。 [コールスタック] ウィンドウでは、[Just My Code] によって、これらの呼び出しが [External Code] フレームに折りたたまれます。 「 マイ コードのみを使用してユーザー コードのみをデバッグする」を参照してください。
プログラムが実行している生のアセンブリ命令を表示またはデバッグするにはどうすればよいですか?
デバッグ > Windows > 逆アセンブルから逆アセンブル ウィンドウを使用します。 一度に 1 つの命令をステップ オーバーしたり、個々のアセンブリ命令にブレークポイントを設定したりできます。
.NET ライブラリのソース コードが表示されますか?
.NET ライブラリのシンボルとソースをダウンロードするには、デバッグ > オプション > シンボルからシンボル サーバー Microsoftを有効にします。 記号の指定を参照してください。
特定の場所または共有の場所またはサーバーから PDB を読み込む方法
デバッグ > オプション > シンボルからシンボル サーバーを構成します。 記号の指定を参照してください。
特定の PDB を絶対に読み込まない方法 または、常に読み込むにはどうすればよいですか?
デバッグ > オプション > シンボルでインクルード リストと除外リストを構成します。
記号の指定を参照してください。
デバッグの構成
デバッガーの設定を構成する方法
デバッガー オプションとデバッガー プロジェクトの設定を構成するには、「デバッガーの設定と準備の 」を参照してください。
デバッガーに表示される情報をカスタマイズする方法
オブジェクトの種類以外の情報を、異なるデバッガー ウィンドウの値として表示できます。 C#、Visual Basic、F#、および C++/CLI コードの場合は、DebuggerDisplay 属性を使用します。 より高度なオプションについては、カスタム ビジュアライザーを作成して UI をカスタマイズすることもできます。 ネイティブ C++ の場合は、NatVis フレームワークを使用します。
その他のタスク
ダンプを保存する必要がありますか?
デバッグ中にエラーまたはブレークポイントで停止している間は、[デバッグ] > [としてダンプを保存]選択します。 ダンプ・ファイルを参照してください。
ダンプ ファイルを分析する方法
Visual Studioで File > Open を選択して、ダンプを開きます。 デバッグを開始するには、[マネージド のみ でデバッグ、ネイティブのみ でデバッグ、混合 でデバッグをするか、マネージド メモリ を使用したデバッグをします。 ダンプ・ファイルを参照してください。
デバッグ セッション中にコードを編集できますか?
Hot Reload (以前は「編集して継続」と呼ばれていたもの) を使用します。 XAML の場合は、XAML Hot Reload を使用します。
リモート コンピューターでデバッグする方法
パフォーマンスの問題を解決する方法
プロファイリング ツールの概要を参照してください。
例外を修正する方法
「例外を修正する」を参照してください。
AI 支援デバッグ
デバッグ中に AI の支援を受ける方法
Copilotがある場合は、例外ヘルパーやデータヒント、変数ウィンドウなどのデバッガーウィンドウで、Copilotで分析 または Copilotに質問 ボタンを探してください。 Copilotは、デバッグ コンテキストを既に認識しています。 Copilot を使用してデバッグを参照してください。
エンドツーエンドのバグ解決にデバッガー エージェントを使用するにはどうすればよいですか?
デバッガー エージェントは、バグを再現し、アプリをインストルメント化し、ライブ ランタイム データを使用して修正を検証するエージェントワークフローを提供します。 Copilot Chat ウィンドウのモード ドロップダウンから Debugger を選択し、問題のリンクを指定するか、バグを説明します。 デバッガー エージェントでのエージェントのバグ解決に関する説明を参照してください。