次の方法で共有


一般的なデバッグ オプション

Visual Studio デバッガー オプションを設定するには、[ツール] >[オプション]選択し、[デバッグの ] で、[全般] オプションの横にあるボックスを選択または選択解除します。 ツールを使用して、すべてのデフォルト設定を復元>設定のインポートとエクスポート>すべての設定をリセットできます。 設定のサブセットをリセットするには、テストする変更を行う前に、設定のインポートおよびエクスポート ウィザード を使用して設定を保存し、保存した設定を後でインポートします。

次の 全般 オプションを設定できます。

すべてのブレークポイントを削除する前に確認: すべてのブレークポイントの削除 コマンドを完了する前に確認が必要です。

1 つのプロセスが中断したときにすべてのプロセスを中断します。中断が発生すると、デバッガーがアタッチされているすべてのプロセスが同時に中断されます。

例外が AppDomain またはマネージド/ネイティブ境界を越えた場合に中断: マネージド デバッグまたは混合モードデバッグでは、次の条件に該当する場合、共通言語ランタイムは、アプリケーション ドメインの境界またはマネージド/ネイティブ境界を越える例外をキャッチできます。

  1. ネイティブ コードが COM 相互運用機能を使用してマネージド コードを呼び出し、マネージド コードが例外をスローする場合。 「COM 相互運用機能の概要」を参照してください。

  2. アプリケーション ドメイン 1 で実行されているマネージド コードがアプリケーション ドメイン 2 のマネージド コードを呼び出すと、アプリケーション ドメイン 2 のコードが例外をスローします。 アプリケーション ドメインを使用したプログラミングを参照してください。

  3. コードがリフレクションを使用して関数を呼び出し、その関数が例外をスローする場合。 リフレクションを参照してください。

条件 2 と 3 では、共通言語ランタイムではなく、mscorlib のマネージド コードによって例外がキャッチされる場合があります。 このオプションを選択しても、mscorlib でキャッチされる例外の処理は中断されません。

アドレス レベルのデバッグを有効にする: アドレス レベルでデバッグするための高度な機能を有効にします (逆アセンブル ウィンドウ、レジスタ ウィンドウ、およびアドレス ブレークポイント)。

  • ソースが使用できない場合に逆アセンブリを表示: ソースが使用できないコードをデバッグすると、逆アセンブル ウィンドウが自動的に表示されます。

ブレークポイント フィルターを有効にする: ブレークポイントにフィルターを設定して、特定のプロセス、スレッド、またはコンピューターにのみ影響を与えるようにします。

新しい例外ヘルパーを使用します。例外アシスタントを置き換える例外ヘルパーを有効にします。 (例外ヘルパーは Visual Studio 2017 以降でサポートされています)

手記

マネージド コードの場合、このオプションは以前は [例外処理アシスタントを有効にする] という名前でした。

マイ コードのみを有効にする: デバッガーはユーザー コード ("マイ コード") のみを表示してステップインし、最適化されているコードやデバッグ シンボルがない他のコードを無視します。

  • 起動時にユーザー コードがない場合に警告する (管理のみ): デバッグが [マイ コードのみ] を有効にして開始すると、ユーザー コード ("マイ コード") がない場合に警告が表示されます。

.NET Framework ソースステップ実行を有効にする: デバッガーが .NET Framework ソースにステップ インできるようにします。 このオプションを有効にすると、マイ コードのみ自動的に無効になります。 .NET Framework シンボルはキャッシュの場所にダウンロードされます。 キャッシュの場所は、[オプション] ダイアログ ボックスの [デバッグ] カテゴリの [シンボル] ページで変更します。

プロパティと演算子のステップ オーバー (マネージドのみ): デバッガーがマネージド コード内のプロパティと演算子にステップ インするのを防ぎます。

プロパティの評価とその他の暗黙的な関数呼び出しを有効にする: 変数ウィンドウと [クイック ウォッチ] ダイアログ ボックスで、プロパティと暗黙的な関数呼び出しの自動評価を有効にします。

  • 変数ウィンドウ内のオブジェクトに対する文字列変換関数の呼び出し (C# および JavaScript のみ): 変数ウィンドウ内のオブジェクトを評価するときに暗黙的な文字列変換呼び出しを実行します。 結果は、型名の代わりに文字列として表示されます。 C# コードでのデバッグ中にのみ適用されます。 この設定は、DebuggerDisplay 属性によってオーバーライドされる可能性があります (DebuggerDisplay 属性の使用を参照)。

ソース サーバーのサポートを有効にする: SrcSrv (srcsrv.dll) プロトコルを実装するソース サーバーからソース ファイルを取得するように Visual Studio デバッガーに指示します。 Team Foundation Server と Debugging Tools for Windows は、プロトコルを実装する 2 つのソース サーバーです。 SrcSrv のセットアップの詳細については、srcSrv ドキュメント を参照してください。 さらに、シンボル (.pdb) ファイルとソース ファイルの指定に関するページを参照してください。

重要

.pdb ファイル 読み取ると、ファイル内の任意のコードが実行される可能性があるため、サーバーを信頼していることを確認してください。

  • ソース サーバーの診断メッセージを出力ウィンドウに出力: ソース サーバーのサポートが有効になっている場合、この設定は診断表示をオンにします。

  • 部分信頼アセンブリのソース サーバーを許可する (管理のみ): ソース サーバーのサポートが有効になっている場合、この設定は、部分信頼アセンブリのソースを取得しないという既定の動作をオーバーライドします。

  • 信頼されていないソースサーバーのコマンドを常にプロンプトなしで実行する: ソースサーバーのサポートが有効になっている場合、この設定は、信頼されていないコマンドの実行時にプロンプトが表示される既定の動作を上書きします。

ソース リンクのサポートを有効にする: ソース リンク情報を含む .pdb ファイルのソース ファイル ダウンロードするように Visual Studio デバッガーに指示します。 ソース リンクの詳細については、ソース リンクの仕様を参照してください。

重要

ソース リンクは http または https を使用してファイルをダウンロードするため、.pdb ファイルを信頼してください。

  • すべてのソース リンク要求の Git Credential Manager 認証にフォールバック: ソース リンクのサポートが有効になっていて、ソース リンク要求が認証に失敗した場合、Visual Studio は Git Credential Manager を呼び出します。

ブレークポイントと現在のステートメントのソース行全体を強調表示する (C++ のみ): デバッガーがブレークポイントまたは現在のステートメントを強調表示すると、行全体が強調表示されます。

元のバージョンのと完全に一致するようにソース ファイルを要求する: デバッグ対象の実行可能ファイルのビルドに使用されるソース コードのバージョンとソース ファイルが一致することを確認するようにデバッガーに指示します。 バージョンが一致しない場合は、一致するソースを検索するように求められます。 一致するソースが見つからない場合、デバッグ中にソース コードは表示されません。

すべての出力ウィンドウのテキストをイミディエイト ウィンドウにリダイレクト: 出力 ウィンドウに通常表示されるすべてのデバッガー メッセージを、代わりに イミディエイト ウィンドウに送信します。

変数ウィンドウにオブジェクトの未加工の構造を表示: すべてのオブジェクト構造ビューのカスタマイズをオフにします。 ビューのカスタマイズの詳細については、「マネージド オブジェクトのカスタム ビューを作成する」を参照してください。

モジュールの読み込み時に JIT 最適化を抑制する (マネージドのみ): モジュールが読み込まれ、デバッガーがアタッチされている間に JIT がコンパイルされるときにマネージド コードの JIT 最適化を無効にします。 最適化を無効にすると、パフォーマンスを犠牲にしながら、一部の問題をデバッグしやすくなります。 マイ コードのみを使用している場合、JIT の最適化を抑制すると、非ユーザー コードがユーザー コード ("マイ コード") として表示される可能性があります。 詳細については、JIT の最適化とデバッグを参照してください。

ASP.NET (Chrome、Microsoft Edge、IE)の JavaScript デバッグを有効にする: ASP.NET アプリのスクリプト デバッガーを有効にします。 Chrome で初めて使用する場合は、インストールした Chrome 拡張機能を有効にするためにブラウザーにサインインすることが必要になる場合があります。 従来の動作に戻すには、このオプションを無効にします。

該当するターゲットで JavaScript をデバッグするためにマルチターゲット JavaScript デバッガーを使用して有効にする (デバッグの再起動が必要) ブラウザーとバックエンドへの接続を同時に有効にして、エディターからクライアントとサーバーで実行されているコードをデバッグできるようにします。

dll エクスポートの読み込み (ネイティブのみ): dll エクスポート テーブルを読み込みます。 dll エクスポート テーブルからのシンボル情報は、Windows メッセージ、Windows プロシージャ (WindowProcs)、COM オブジェクト、マーシャリング、またはシンボルのない dll を操作する場合に役立ちます。 dll エクスポート情報の読み取りには、オーバーヘッドが伴います。 そのため、この機能は既定でオフになっています。

dll のエクスポート テーブルで使用できるシンボルを確認するには、dumpbin /exportsを使用します。 シンボルは、任意の 32 ビット システム dll で使用できます。 dumpbin /exports 出力を読み取ることで、英数字以外の文字を含む正確な関数名を確認できます。 これは、関数にブレークポイントを設定する場合に便利です。 dll エクスポート テーブルの関数名は、デバッガーの別の場所で切り捨てられたように見える場合があります。 呼び出しは呼び出し元の順序で一覧表示され、現在の関数 (最も深く入れ子になっている関数) が先頭に表示されます。 詳細については、dumpbin /exportsを参照してください。

並列スタックダイアグラムのボトムアップを表示する: 並列スタック ウィンドウにスタックを表示する方向を制御します。

書き込まれたデータが値を変更しなかった場合は GPU メモリ アクセスの例外を無視: データが変更されなかった場合にデバッグ中に検出された競合状態を無視します。 詳細については、「デバッグ GPU コード」を参照してください。

マネージド互換モードのを使用する: 既定のデバッグ エンジンをレガシ バージョンに置き換えて、次のシナリオを有効にします。

  • 独自の式エバリュエーターを提供する C#、Visual Basic、または F# 以外の .NET 言語を使用しています (これには C++/CLI が含まれます)。

  • 混合モードのデバッグ中にC++プロジェクトで「Edit and Continue」を有効にしたいです。

手記

管理互換モードを選択すると、既定のデバッグ エンジンでのみ実装される一部の機能が無効になります。 レガシ デバッグ エンジンは、Visual Studio 2012 で置き換えられました。

安全でない可能性のあるプロセス (マネージドのみ)に対してカスタム デバッガー ビジュアライザーを使用する場合に警告を表示する: Visual Studio では、デバッグされたプロセスでコードを実行しているカスタム デバッガー ビジュアライザーを使用しているときに警告が表示されます。これは、安全でないコードが実行されている可能性があるためです。

Windows デバッグ ヒープ アロケーターを有効にする (ネイティブのみ): Windows デバッグ ヒープを有効にしてヒープ診断を向上させます。 このオプションを有効にすると、デバッグのパフォーマンスに影響します。

XAMLの UI デバッグ ツールを有効にする: サポートされているプロジェクトの種類 (F5) のデバッグを開始すると、ライブ ビジュアル ツリーウィンドウとライブ プロパティ探索ウィンドウが表示されます。 詳細については、「のデバッグ中に XAML プロパティを検査するを参照してください。

  • Live Visual Treeで選択した要素をプレビューする: コンテキストが選択されている XAML 要素は、Live Visual Tree ウィンドウでも選択されます。

  • アプリケーションでランタイム ツールを表示する: デバッグ対象の XAML アプリケーションのメイン ウィンドウのツール バーにある Live Visual Tree コマンドを表示します。

  • XAML ホット リロードを有効にする: アプリの実行中に XAML コードで XAML ホット リロード機能を使用できます。 (この機能は、以前は「XAML エディット アンド コンティニュ」と呼ばれていました)

  • [マイ XAML のみを有効にする]: Visual Studio 2019 バージョン 16.4 以降では、既定で Live ビジュアル ツリー には、ユーザー コードとして分類された XAML のみが表示されます。 このオプションを無効にすると、生成されたすべての XAML コードがツールに表示されます。

  • Visual Studio 2019 バージョン 16.4 以降 要素が選択されているときに選択モードをオフにすると、要素が選択されると、アプリ内ツール バー要素セレクター ボタン (選択を有効にする) がオフになります。 このオプションを無効にした場合、アプリ内ツール バー ボタンをもう一度クリックするまで、要素の選択はオンのままです。

  • ドキュメントの保存 Visual Studio 2019 バージョン 16.6 以降で XAML ホット リロードを適用すると、ドキュメントを保存するときに XAML ホット リロードが適用されます。

のデバッグ中に診断ツールを有効にする: デバッグ中に [診断ツールの] ウィンドウが表示されます。

デバッグ中に PerfTip の経過時間を表示: コード ウィンドウには、デバッグ時の特定のメソッド呼び出しの経過時間が表示されます。

エディット コンティニュを有効にする: デバッグ中にエディット コンティニュ機能を有効にします。

  • ネイティブエディットコンティニュを有効にする: ネイティブ C++ コードのデバッグ中にエディット コンティニュ機能を使用できます。 詳細については、「エディット アンド コンティニュー (C++)」を参照してください。

  • 続行時に変更を適用する (ネイティブのみ):Visual Studio では、中断状態からプロセスを続行するときに行った未処理のコード変更が自動的にコンパイルされ、適用されます。 選択されていない場合は、[デバッグ] メニューの [コード変更の適用] 項目 使用して変更を適用できます。

  • 古いコードに関する警告 (ネイティブのみ): 古いコードに関する警告を取得します。

デバッグ中に、[クリックで実行] ボタンをエディターに表示する: このオプションを選択すると、デバッグ中に [クリックで実行] ボタンが表示されます。

デバッグが停止したときにコンソールを自動的に閉じる: デバッグ セッションの終了時にコンソールを閉じるよう Visual Studio に指示します。

高速式評価を有効にする (マネージドのみ): 単純なプロパティとメソッドの実行をシミュレートすることで、デバッガーで高速な評価を試みることができます。

外部プロセスでデバッグ シンボルを読み込む (ネイティブのみ) デバッグ中にこの メモリ最適化 を有効にします。

デバッガーで中断したときに Visual Studio をフォアグラウンドに戻す デバッガーで一時停止するときに Visual Studio をフォアグラウンドに切り替えます。

クリックするまで展開されたデータ ヒントを開いたままにする このオプションを選択すると、展開されたデータ ヒントは、クリックしてそこから離れるまで展開されたままになります。

以前のバージョンの Visual Studio で使用できるオプション

以前のバージョンの Visual Studio を使用している場合は、いくつかの追加オプションが存在する可能性があります。

Edge Developer Tools for UWP JavaScript Apps (試験段階)を有効にする: Microsoft Edge で UWP JavaScript アプリ用の開発者ツールを有効にします。

ASP.NETで従来の Chrome JavaScript デバッガーを有効にする: ASP.NET アプリに対して従来の Chrome JavaScript スクリプト デバッガーを有効にします。 Chrome で初めて使用する場合は、インストールした Chrome 拡張機能を有効にするためにブラウザーにサインインすることが必要になる場合があります。

例外アシスタントのを有効にする: マネージド コードの場合は、例外アシスタントを有効にします。 Visual Studio 2017 以降では、例外ヘルパーによって例外アシスタントが置き換えられました。

ハンドルされない例外で呼び出し履歴をアンワインドする: 呼び出し履歴 ウィンドウが、ハンドルされない例外が発生する前のポイントに呼び出し履歴をロールバックします。

管理者として Visual Studio を実行するときに Chrome JavaScript デバッグを起動する実験的な方法を使用する: JavaScript デバッグ中に Chrome を起動する新しい方法を試すように Visual Studio に指示します。

起動時にシンボルがない場合に警告する (ネイティブのみ): デバッガーにシンボル情報がないプログラムをデバッグするときに警告ダイアログ ボックスが表示されます。

起動時にスクリプト デバッグが無効になっている場合に警告: スクリプト デバッグを無効にしてデバッガーを起動すると、警告ダイアログ ボックスが表示されます。

マネージド互換モードのを使用する: このオプションを選択すると、デバッガーは Visual Studio 2010 マネージド デバッガーを使用します。これは、C++/CLI コードをデバッグするときに必要でした。

ネイティブ互換モードを使用する: このオプションを選択すると、デバッガーは新しいネイティブ デバッガーではなく Visual Studio 2010 ネイティブ デバッガーを使用します。

  • 新しいデバッグ エンジンでは .NET C++ 式の評価がサポートされていないため、.NET C++ コードをデバッグする場合は、このオプションを使用します。 ただし、ネイティブ互換モードを有効にすると、動作する現在のデバッガーの実装に依存する多くの機能が無効になります。 たとえば、レガシ エンジンには、Visual Studio 2015 プロジェクトの std::string などの組み込み型のビジュアライザーが多数用意されていません。 このような場合に最適なデバッグ エクスペリエンスを実現するには、Visual Studio 2013 プロジェクトを使用します。

関連項目