[全般] ([オプション] ダイアログ ボックス - [デバッグ])
[全般] ページを使用するには、[ツール] メニューを開き、[オプション] をクリックします。 [オプション] ダイアログ ボックスで、[デバッグ] ノードを展開し、[全般] をクリックします。 このページを使って、以下の汎用的なデバッグ オプションを設定できます。
[すべてのブレークポイントを削除する前に確認する]
[すべてのブレークポイントの削除] を実行する前に確認を要求します。[1 つのプロセスがブレークするとき、他のプロセスもブレークする]
中断が生じると、デバッガーがアタッチされているすべてのプロセスを同時に中断します。[例外が AppDomain またはマネージ/ネイティブの境界を越える場合にブレークする]
マネージ コードのデバッグまたは混合モードのデバッグでは、次のような条件が満たされた場合、共通言語ランタイムにより、アプリケーション ドメインの境界、またはマネージ コードとネイティブ コードの境界を越える例外がキャッチされます。1) ネイティブ コードが、COM 相互運用機能を使用してマネージ コードを呼び出し、呼び出されたマネージ コードが例外をスローした場合。 「COM 相互運用の概要 (Visual Basic)」を参照してください。
2) アプリケーション ドメイン A で実行中のマネージ コードがアプリケーション ドメイン B のマネージ コードを呼び出し、アプリケーション ドメイン B のコードが例外をスローした場合。 「アプリケーション ドメインを使用したプログラミング」を参照してください。
3) コードがリフレクションを使用して関数を呼び出し、呼び出された関数が例外をスローした場合。 「.NET Framework のリフレクション」を参照してください。
2) および 3) の場合、スローされる例外は、共通言語ランタイムではなく、mscorlib のマネージ コードによりキャッチされることがあります。 このオプションを選択しても、mscorlib でキャッチされる例外の処理は中断されません。
[アドレス レベルのデバッグを有効にする]
アドレス レベルでデバッグを行うための高度な機能 ( [逆アセンブル] ウィンドウ、[レジスタ] ウィンドウ、およびアドレス ブレークポイント) を有効にします。[ソースがない場合は逆アセンブリの表示]
ソースを利用できないコードをデバッグしようとするときに、[逆アセンブル] ウィンドウが自動的に表示されます。[ブレークポイントのフィルターを有効にする]
特定のプロセス、スレッド、またはコンピューターだけにフィルターが影響するように、ブレークポイントのフィルターの設定を有効にします。[例外処理アシスタントを有効にする]
マネージ コード専用です。 このオプションをオンにすると、マネージ例外が発生したときに、従来の [例外] ダイアログ ボックスではなく、新しい [例外処理アシスタント] ダイアログ ボックスが開きます。 [例外処理アシスタント] ダイアログ ボックスには詳細な情報が表示されるため、例外を処理するうえで非常に役立ちます。 「例外処理アシスタント」を参照してください。[ハンドルされていない例外で呼び出し履歴をアンワインドする]
[呼び出し履歴] ウィンドウで、未処理の例外が発生した前の時点に呼び出し履歴をロールバックします。[マイ コードのみを有効にする]
この機能を有効にすると、デバッガーはユーザー コード ("マイ コード") だけを表示してステップ インします。システム コードや、その他の最適化されたコードまたはデバッグ シンボルを持たないコードは無視されます。[非ユーザー オブジェクトのすべてのメンバーを変数ウィンドウに表示する (Visual Basic のみ)]
非ユーザー コード ("マイ コード" 以外のコード) に含まれるオブジェクトの非パブリック メンバーの表示をオンにします。[起動時にユーザー コードが見つからないとき警告]
[マイ コードのみ] を有効にしてデバッグを開始したとき、ユーザー コード ("マイ コード") が存在しない場合に警告を行います。[.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 のセットアップの詳細については、Debugging Tools for Windows のドキュメントを参照してください。 さらに、「シンボル (.pdb) ファイル、ソース ファイル、およびバイナリ ファイルの検索」を参照してください。セキュリティに関するメモ .pdb ファイルを読み取ることでそのファイル内の任意のコードを実行できるため、サーバーが信頼されていることを確認してください。
[ソース サーバー診断メッセージを出力ウィンドウに表示する]
ソース サーバーのサポートが有効な場合に、診断表示をオンにします。[部分信頼アセンブリのソース サーバーを許可する (マネージのみ)]
ソース サーバーのサポートが有効になっているとき、この設定により、部分信頼アセンブリのソースを取得しないという既定の動作がオーバーライドされます。[ブレークポイントおよび現在のステートメントのソース行全体を強調表示する]
デバッガーでブレークポイントまたは現在のステートメントを強調表示するときに、行全体を強調表示します。[元のバージョンと完全に一致するソース ファイルを必要とする]
デバッグ中の実行可能ファイルをビルドしたときに使用したソース コードのバージョンが、ソース ファイルと一致するかどうかを検査するようにデバッガーに指示します。 バージョンが一致しない場合、一致するソースを検索するように指示するメッセージが表示されます。 一致するソースが見つからないときは、デバッグ時にソース コードが表示されません。[出力ウィンドウの文字をすべてイミディエイト ウィンドウにリダイレクトする]
通常は出力ウィンドウに出力されるデバッガー メッセージをすべてイミディエイト ウィンドウに送信します。[オブジェクトの生の構造体を変数ウィンドウに表示する]
すべてのオブジェクトの構造体ビューのカスタマイズをオフにします。 ビューのカスタマイズの詳細については、「カスタム データ型の表示」を参照してください。[モジュールの読み込み中に JIT 最適化を抑制する (マネージのみ)]
デバッガーをアタッチするとき、モジュールの読み込み中 (および JIT のコンパイル中) にマネージ コードの JIT 最適化を無効にします。 最適化を無効にした場合、一部の問題のデバッグは簡単になりますが、パフォーマンスは低下します。 [マイ コードのみ] を使用しているときに JIT 最適化を抑制すると、非ユーザー コードがユーザー コード ("マイ コード") として表示される可能性があります。[起動時にシンボルが見つからないとき警告 (ネイティブのみ)]
オンにすると、プログラムをデバッグするときにそのプログラムのシンボル情報がない場合は、警告を示すダイアログ ボックスが表示されます。 「No Symbolic Information Dialog Box」を参照してください。[起動時、スクリプト デバッグが無効な場合は警告する]
選択した場合、デバッガーの起動時にスクリプト デバッグが無効である場合に警告ダイアログ ボックスが表示されます。[DLL エクスポートを読み込む]
オンにすると、DLL エクスポート テーブルを読み込みます。 DLL エクスポート テーブルのシンボル情報は、対応するシンボルのない Windows メッセージ、Windows プロシージャ (WindowProc)、COM オブジェクト、マーシャリング、または DLL を操作する場合に役立ちます。 DLL エクスポート情報を読み取ると、オーバーヘッドがある程度発生します。 そのため、既定ではこの機能はオフになっています。DLL のエクスポート テーブル内で使用できるシンボルを調べるには、dumpbin /exports を使用します。 シンボルは、任意の 32 ビット システムの DLL に使用できます。 dumpbin /exports の出力を参照すると、英数字以外の文字を含む、正確な関数名を確認できます。 この情報は、関数にブレークポイントを設定するときに使用します。 DLL エクスポート テーブルの関数名は、デバッガーの他の場所で表示されるときは、切り捨てられることがあります。 関数は呼び出し順に表示され、現在の関数 (入れ子の一番内側) が先頭に表示されます。 詳細については、「dumpbin /exports」を参照してください。
[並列スタックの図を上下逆に表示]
スタックを [並列スタック] ウィンドウに表示する方向を制御します。[書き込まれたデータで値が変更されなかった場合は GPU メモリ アクセス例外を無視する]
データが変更されなかった場合、デバッグ中に検出された競合状態を無視します。 詳細については、「GPU コードのデバッグ」を参照してください。[マネージ互換モードの使用]
既定のデバッグ エンジンをレガシ バージョンと置き換えて、次のシナリオを有効にします。独自の式エバリュエーターを提供する C#、VB、または F# 以外の .NET Framework 言語を使用しています (これは C++/CLI を含みます)。
混合モード デバッグ時に、C++ プロジェクトのエディット コンティニュ (EnC) を有効にします。
マネージ互換モードを選択すると、既定のデバッグ エンジンにのみ実装されている一部の機能は無効になります。