Visual Studio デバッガー オプションを設定するには、[ ツール>オプション] を選択し、[ デバッグ ] で [ 全般 ] オプションの横にあるチェック ボックスをオンまたはオフにします。 ツールを使用して、すべてのデフォルト設定を復元>設定のインポートとエクスポート>すべての設定をリセットできます。 設定のサブセットをリセットするには、テストする変更を行う前に、設定のインポートおよびエクスポート ウィザード を使用して設定を保存し、保存した設定を後でインポートします。
次の 全般 オプションを設定できます。
すべてのブレークポイントを削除する前に確認: すべてのブレークポイントの削除 コマンドを完了する前に確認が必要です。
1 つのプロセスが中断したときにすべてのプロセスを中断します。中断が発生すると、デバッガーがアタッチされているすべてのプロセスが同時に中断されます。
例外が AppDomain またはマネージド/ネイティブの境界を越えた場合に中断する: マネージド または混合モードのデバッグでは、共通言語ランタイムは、3 つの条件が満たされている場合に、アプリケーション ドメインの境界またはマネージド/ネイティブ境界を越える例外をキャッチできます。
条件 1: ネイティブ コードが COM 相互運用機能を使用してマネージド コードを呼び出し、マネージド コードが例外をスローする場合。 「COM 相互運用機能の概要」を参照してください。
条件 2: アプリケーション ドメイン 1 で実行されているマネージド コードがアプリケーション ドメイン 2 のマネージド コードを呼び出し、アプリケーション ドメイン 2 のコードが例外をスローする場合。 アプリケーション ドメインを使用したプログラミングを参照してください。
条件 3: コードがリフレクションを使用して関数を呼び出し、その関数が例外をスローする場合。 リフレクションを参照してください。
条件 2 と 3 では、共通言語ランタイムではなく、
mscorlibのマネージド コードによって例外がキャッチされる場合があります。 このオプションは、mscorlibによってキャッチされた例外の中断には影響を与えません。
アドレス レベルのデバッグを有効にする: アドレス レベルでデバッグするための高度な機能を有効にします (逆アセンブル ウィンドウ、レジスタ ウィンドウ、およびアドレス ブレークポイント)。
- ソースが使用できない場合に逆アセンブリを表示: ソースが使用できないコードをデバッグすると、逆アセンブル ウィンドウが自動的に表示されます。
ブレークポイント フィルターを有効にする: ブレークポイントにフィルターを設定して、特定のプロセス、スレッド、またはコンピューターにのみ影響を与えることができます。
新しい例外ヘルパーを使用します。例外アシスタントを置き換える例外ヘルパーを有効にします。 (例外ヘルパーは Visual Studio 2017 以降でサポートされています)
手記
マネージド コードの場合、このオプションは以前は [例外処理アシスタントを有効にする] という名前でした。
マイ コードのみを有効にする: デバッガーはユーザー コード ("マイ コード") のみを表示してステップインします。システム コードと、最適化されたコードやデバッグ シンボルがないその他のコードは無視されます。
- 起動時にユーザー コードがない場合に警告する (管理のみ): デバッグが [マイ コードのみ] を有効にして開始すると、ユーザー コード ("マイ コード") がない場合に警告が表示されます。
.NET Framework ソースステップ実行を有効にする: デバッガーが .NET Framework ソースにステップ インできるようにします。 このオプションを有効にすると、マイ コードのみ自動的に無効になります。 .NET Framework シンボルはキャッシュの場所にダウンロードされます。 キャッシュの場所は、[ デバッグ>Symbols>検索の場所 ] セクション で、このディレクトリ オプションのキャッシュ シンボルを 使用して変更できます。
.NET Framework ソースステップ実行を有効にする: デバッガーが .NET Framework ソースにステップ インできるようにします。 このオプションを有効にすると、マイ コードのみ自動的に無効になります。 .NET Framework シンボルはキャッシュの場所にダウンロードされます。 [デバッグ]> セクションでキャッシュの場所を変更するには、[このディレクトリのキャッシュ シンボル] オプションを使用します。
デバッグされた関数を可能な限り自動的に最適化解除する (.Net 8 以降、C++ 動的デバッグ): 選択すると、デバッグされた関数が最適化され、より包括的なデバッグ エクスペリエンスが得られます。
モジュールの読み込み時に JIT 最適化を抑制する (マネージドのみ): モジュールが読み込まれ、デバッガーがアタッチされている間に JIT がコンパイルされるときにマネージド コードの JIT 最適化を無効にします。 最適化を無効にすると、パフォーマンスを犠牲にしながら、いくつかの問題をデバッグしやすくなります。 マイ コードのみを使用している場合、JIT の最適化を抑制すると、非ユーザー コードがユーザー コード ("マイ コード") として表示される可能性があります。 詳細については、JIT の最適化とデバッグを参照してください。
プリコンパイル済みイメージの使用を構成する (管理のみ): このリンクを選択すると、 Visual Studio デバッガー オプション ダイアログが開きます。 このオプションを有効にするには、[ モジュールの読み込み時にプリコンパイル済みイメージを使用できないように する] チェック ボックスをオンにして、[ OK] を選択します。 オンにすると、NGEN または読み込み準備完了 (RDR) プリコンパイル済みイメージの読み込みが無効になります。
モジュールの読み込み時にプリコンパイル済みイメージの使用を禁止する (マネージドのみ、再起動時にリセット) : オンにすると、NGEN の読み込みまたは読み込み準備完了 (RDR) プリコンパイル済みイメージが無効になります。
Just-In-Time デバッグの構成: このリンクを選択すると、 Visual Studio デバッガー オプション ダイアログが開きます。 このオプションを有効にするには、 これらの種類のコードに対して Just-In-Time デバッグを有効にする チェック ボックスをオンにします。 1 つ以上のコードの種類 ( ネイティブ と マネージド (.NET Framework)) を選択し、[ OK] を選択します。 このオプションでは、選択したコードの種類に対して Just-In-Time デバッグが有効になります。
プロパティと演算子のステップ オーバー (マネージドのみ): デバッガーがマネージド コード内のプロパティと演算子にステップ インするのを防ぎます。
プロパティの評価とその他の暗黙的な関数呼び出しを有効にする: 変数ウィンドウと [クイック ウォッチ] ダイアログ ボックスで、プロパティと暗黙的な関数呼び出しの自動評価を有効にします。
- 変数ウィンドウ内のオブジェクトに対する文字列変換関数の呼び出し: 変数ウィンドウ内のオブジェクトを評価するときに、暗黙的な文字列変換呼び出しを実行します。 結果は、型名の代わりに文字列として表示されます。 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++ のみ): デバッガーがブレークポイントまたは現在のステートメントを強調表示すると、行全体が強調表示されます。
ソース ファイルが元のバージョンと正確に一致するように要求する: デバッグ中の実行可能ファイルのビルドに使用されるソース コードのバージョンとソース ファイルが一致することを確認するようにデバッガーに指示します。 バージョンが一致しない場合は、一致するソースを検索するように求められます。 一致するソースが見つからない場合、デバッグ中にソース コードは表示されません。
すべての出力ウィンドウのテキストをイミディエイト ウィンドウにリダイレクト: 出力 ウィンドウに通常表示されるすべてのデバッガー メッセージを、代わりに イミディエイト ウィンドウに送信します。
変数ウィンドウにオブジェクトの未加工の構造を表示: すべてのオブジェクト構造ビューのカスタマイズをオフにします。 ビューのカスタマイズの詳細については、「マネージド オブジェクトのカスタム ビューを作成する」を参照してください。
ASP.NET (Chrome および Edge) の JavaScript デバッグを有効にする: ASP.NET アプリのスクリプト デバッガーを有効にします。 Chrome で初めて使用する場合は、インストールした Chrome 拡張機能を有効にするためにブラウザーにサインインすることが必要になる場合があります。 従来の動作に戻すには、このオプションを無効にします。
ASP.NET (Chrome、Edge、IE) の JavaScript デバッグを有効にする: ASP.NET アプリのスクリプト デバッガーを有効にします。 Chrome で初めて使用する場合は、インストールした Chrome 拡張機能を有効にするためにブラウザーにサインインすることが必要になる場合があります。 従来の動作に戻すには、このオプションを無効にします。
dll エクスポートの読み込み (ネイティブのみ): dll エクスポート テーブルを読み込みます。 dll エクスポート テーブルからのシンボル情報は、Windows メッセージ、Windows プロシージャ (WindowProcs)、COM オブジェクト、マーシャリング、またはシンボルのない dll を操作している場合に役立ちます。 dll エクスポート情報の読み取りには、オーバーヘッドが伴います。 そのため、この機能は既定でオフになっています。
- dll のエクスポート テーブルで使用できるシンボルを確認するには、
dumpbin /exportsを使用します。 シンボルは、任意の 32 ビット システム dll で使用できます。dumpbin /exports出力を読み取ることで、英数字以外の文字を含む正確な関数名を確認できます。 これは、関数にブレークポイントを設定する場合に便利です。 dll エクスポート テーブルの関数名は、デバッガーの別の場所で切り捨てられたように見える場合があります。 呼び出しは呼び出し元の順序で一覧表示され、現在の関数 (最も深く入れ子になっている関数) が先頭に表示されます。 詳細については、dumpbin /exportsを参照してください。
書き込まれたデータが値を変更しなかった場合は GPU メモリ アクセスの例外を無視: データが変更されなかった場合にデバッグ中に検出された競合状態を無視します。 詳細については、「デバッグ GPU コード」を参照してください。
安全でない可能性のあるプロセスに対してカスタム デバッガー ビジュアライザーを使用する場合に警告する (管理のみ):Visual Studio では、デバッグされたプロセスでコードを実行しているカスタム デバッガー ビジュアライザーを使用しているときに警告が表示されます。これは、安全でないコードが実行されている可能性があるためです。
Windows デバッグ ヒープ アロケーターを有効にする (ネイティブのみ): Windows デバッグ ヒープを有効にしてヒープ診断を向上させます。 このオプションを有効にすると、デバッグのパフォーマンスに影響します。
デバッグ中に診断ツールを有効にする: デバッグ中に [診断ツール] ウィンドウが表示されます。
デバッグ中に PerfTip の経過時間を表示する: コード ウィンドウには、デバッグ中の特定のメソッド呼び出しの経過時間が表示されます。
ホット リロードを有効にする: デバッグ中にホット リロード機能を有効にします。
[続行時に変更を自動的に適用する (ネイティブのみ)]:Visual Studio は、中断状態からプロセスを続行するときに行った未処理のコード変更を自動的にコンパイルして適用します。 選択されていない場合は、[デバッグ] メニューの [コード変更の適用] 項目 使用して変更を適用できます。
古いコードに関する警告 (ネイティブのみ): 古いコードに関する警告を取得します。
デバッグ中に [クリックして実行] ボタンを表示する: このオプションを選択すると、デバッグ中 に [クリックまで実行 ] ボタンが表示されます。
デバッグが停止したときにコンソールを自動的に閉じる: デバッグ セッションの終了時にコンソールを閉じるよう Visual Studio に指示します。
高速式評価を有効にする (マネージドのみ): 単純なプロパティとメソッドの実行をシミュレートすることで、デバッガーで高速な評価を試みることができます。
外部プロセスでデバッグ シンボルを読み込む (ネイティブのみ):デバッグ中にこの メモリ最適化 を有効にします。
デバッガーで中断したときに Visual Studio をフォアグラウンドに移動する: デバッガーで一時停止すると、Visual Studio をフォアグラウンドに切り替えます。
展開されたデータ ヒントは、クリックするまで開いたままにします。このオプションを選択すると、展開されたデータ ヒントは、クリックするまで展開された状態の状態を維持します。
ソリューション エクスプローラーで [外部ソース] ノードを有効にする: オンにすると、[外部ソース] ノードの下に逆コンパイルされたコードが表示されます。
必要に応じソースに自動的に逆コンパイルする (管理のみ): 選択すると、外部コードにステップインするときに外部 .NET コードが自動的に逆コンパイルされます。
現在のステートメントとブレークポイントを持つステートメントを強調表示する: デバッガーがブレークポイントまたは現在のステートメントを強調表示すると、行全体が強調表示されます。
デバッグ中にエディターで変数値をインラインで表示する: デバッガーで強調表示されているステートメント内の変数の値を表示します。
戻り値をインラインで表示する: デバッガーで強調表示されているステートメントの戻り値を表示します。
関数引数の値をインラインで表示する: デバッガーで強調表示されているステートメントの関数引数の値を表示します。
現在の行の式の値をインラインで表示する: デバッガーの現在の行内の式の値を表示します。
以前のバージョンの 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 に指示します。
起動時にシンボルがない場合に警告する (ネイティブのみ): デバッガーにシンボル情報がないプログラムをデバッグするときに警告ダイアログ ボックスが表示されます。
起動時にスクリプト デバッグが無効になっている場合に警告: スクリプト デバッグを無効にしてデバッガーを起動すると、警告ダイアログ ボックスが表示されます。