全般デバッグ オプション

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

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

すべてのブレークポイントを削除する前に確認する: [すべてのブレークポイントの削除] を実行する前に確認を要求します。

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

例外が AppDomain またはマネージド/ネイティブの境界を越える場合にブレークする: マネージド コードのデバッグまたは混合モードのデバッグでは、次のような条件が満たされた場合、共通言語ランタイムにより、アプリケーション ドメインの境界、またはマネージド コードとネイティブ コードの境界を越える例外がキャッチされます。

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

  2. アプリケーション ドメイン 1 で実行中のマネージド コードによってアプリケーション ドメイン 2 のマネージド コードが呼び出され、アプリケーション ドメイン 2 のコードから例外がスローされた場合。 「アプリケーション ドメインを使用したプログラミング」をご覧ください。

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

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

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

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

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

新しい例外ヘルパーを使用する: 例外アシスタントに代わる機能である例外ヘルパーを有効にします。 (例外ヘルパーは、Visual Studio 2017 以降でサポートされています)

Note

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

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

  • 起動時にユーザー コードが見つからないとき警告 (マネージドのみ): [マイ コードのみ] を有効にしてデバッグを開始したとき、ユーザー コード ("マイ コード") が存在しない場合、警告が出ます。

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

プロパティおよび演算子をステップ オーバーする (マネージドのみ): デバッグ時にマネージド コード内のプロパティおよび演算子にステップ インしません。

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

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

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

重要

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

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

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

  • 信頼されていないソース サーバー コマンドを常に確認なしで実行する: ソース サーバーのサポートが有効な場合、この設定により、信頼されていないコマンドを実行するときにプロンプトを表示する既定の動作がオーバーライドされます。

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

重要

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

  • ソース リンク要求の場合はすべて、Git 資格情報マネージャーの認証にフォールバックします: ソース リンクのサポートが有効になっていて、ソース リンクの要求で認証が失敗した場合は、Visual Studio によって Git 資格情報マネージャーが呼び出されます。

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

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

出力ウィンドウの文字をすべてイミディエイト ウィンドウにリダイレクトする: 通常は [出力] ウィンドウに出力されるデバッガー メッセージをすべて [イミディエイト] ウィンドウに送信します。

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

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

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

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

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

DLL のエクスポート テーブル内で使用できるシンボルを確認するには、dumpbin /exports を使います。 シンボルは、すべての 32 ビット システムの DLL に使うことができます。 dumpbin /exports の出力を参照すると、英数字以外の文字を含む、正確な関数名を確認できます。 この情報は、関数にブレークポイントを設定するときに使用します。 DLL エクスポート テーブルの関数名は、デバッガーの他の場所で表示されるとき、切り捨てられることがあります。 関数は呼び出し順に表示され、現在の関数 (入れ子の一番内側) が先頭に表示されます。 詳細については、「 dumpbin /exports」を参照してください。

[並列スタックの図を上下逆に表示]: スタックを [並列スタック] ウィンドウに表示する方向を制御します。

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

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

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

  • 混合モード デバッグの間に、C++ プロジェクトのエディット コンティニュを有効にすることを希望します。

Note

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

問題を起こす可能性があるプロセスに対してカスタムのデバッガー ビジュアライザーを使用する際に警告を表示する (マネージドのみ): デバッグ対象プロセスでコードを実行中のカスタム デバッガー ビジュアライザーを使っているときに、アンセーフ コードを実行している可能性がある場合、Visual Studio から警告が出されます。

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

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

  • ライブ ビジュアル ツリーで選択された要素をプレビューする: コンテキストが選択されている XAML 要素は、[ライブ ビジュアル ツリー] ウィンドウでも選択されます。

  • アプリケーションでランタイム ツールを表示: デバッグされている XAML アプリケーションのメイン ウィンドウのツール バーに [ライブ ビジュアル ツリー] コマンドを表示します。

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

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

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

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

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

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

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

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

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

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

デバッグ中に、クリックした行まで実行するためのボタンをエディターに表示する: このオプションをオンにすると、デバッグ中に [Run To Click]\(クリックで実行) ボタンが表示されます。

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

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

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

デバッガーの中断時に Visual Studio を前景に移動します デバッガーで一時停止すると、Visual Studio が前景に切り替えられます。

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

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

古いバージョンの Visual Studio を使用している場合、いくつかの追加オプションが表示されることがあります。

UWP JavaScript アプリ向けの Edge 開発者ツール (試験段階): 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 プロジェクトを使用します。

関連項目