DebuggableAttribute.DebuggingModes 列挙型

定義

Just-In-Time (JIT) コンパイラのデバッグ モードを指定します。

この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。

public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes = 
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes = 
Public Enum DebuggableAttribute.DebuggingModes
継承
DebuggableAttribute.DebuggingModes
属性

フィールド

名前 説明
None 0

.NET Framework バージョン 2.0 以降では、JIT 追跡情報が常に生成され、このフラグは Default と同じ効果を持ちます。ただし、IsJITTrackingEnabled プロパティは false に設定されます。 ただし、JIT 追跡は常に有効になっているため、バージョン 2.0 以降ではプロパティ値は無視されます。

DisableOptimizations フラグとは異なり、None フラグを使用して JIT 最適化を無効にすることはできないことに注意してください。

Default 1

Just-In-Time (JIT) コンパイラに、最適化の有効化、エディット コンティニュのサポートの無効化、シンボル ストア シーケンス ポイント (存在する場合) の使用など、既定の動作を使用するように指示します。 .NET Framework バージョン 2.0 以降では、JIT 追跡情報は、メソッド内のネイティブ コード オフセットに対するMicrosoft中間言語 (MSIL) オフセットが常に生成されます。

IgnoreSymbolStoreSequencePoints 2

プログラム データベース (PDB) シーケンス ポイントではなく、暗黙的な MSIL シーケンス ポイントを使用します。 シンボリック情報には、通常、ソース行ごとに少なくとも 1 つのMicrosoft中間言語 (MSIL) オフセットが含まれます。 Just-In-Time (JIT) コンパイラは、メソッドをコンパイルしようとしているときに、保持する必要がある MSIL オフセットの一覧をプロファイリング サービスに要求します。 これらの MSIL オフセットはシーケンス ポイントと呼ばれます。

EnableEditAndContinue 4

エディット コンティニュを有効にします。 エディット コンティニュを使用すると、プログラムが中断モードの間にソース コードを変更できます。 編集と続行の機能はコンパイラによって異なります。

DisableOptimizations 256

コンパイラによって実行される最適化を無効にして、出力ファイルをより小さく、高速に、より効率的にします。 最適化により、出力ファイル内のコードが再配置され、デバッグが困難になる可能性があります。 通常、デバッグ中は最適化を無効にする必要があります。 バージョン 2.0 以降では、この値を Default (Default |DisableOptimizations) を使用して JIT 追跡を有効にし、最適化を無効にします。

注釈

DebuggableAttribute.DebuggingModes列挙体は、コードの生成中にデバッガーにとって重要な情報を追跡するランタイムの方法を指定します。 この情報は、デバッガーが豊富なデバッグ エクスペリエンスを提供するのに役立ちます。 .NET Framework バージョン 1.1 とは異なり、バージョン 2.0 以降では、Just-In-Time (JIT) コンパイラによる追跡を無効にすることはできません。 JIT 追跡は、デバッグ可能なファイルに対して常に有効になります。 バージョン 2.0 以降では、列挙値には次の効果があります。

デバッグ モード 結果
None 追跡、JIT 最適化が有効
Default 追跡、JIT 最適化が有効
DisableOptimizations 追跡、JIT 最適化が有効
既定値 |DisableOptimizations 追跡中、JIT 最適化が無効

シーケンス ポイントは、ブレークポイントの設定など、デバッガー ユーザーが一意に参照できるMicrosoft中間言語 (MSIL) コード内の場所を示すために使用されます。 JIT コンパイラは、2 つの異なるシーケンス ポイントで MSIL を 1 つのネイティブ命令にコンパイルしないようにします。 既定では、JIT コンパイラは、プログラム データベース (PDB) ファイル内のシンボル ストアで、追加のシーケンス ポイントの一覧を調べます。 ただし、PDB ファイルを読み込むには、ファイルを使用できる必要があり、パフォーマンスに悪影響を及ぼします。 バージョン 2.0 以降では、コンパイラは MSIL "nop" 命令" を使用して、MSIL コード ストリームに "暗黙的なシーケンス ポイント" を出力できます。 このようなコンパイラでは、PDB ファイルを読み込まないよう共通言語ランタイムに通知するために、 IgnoreSymbolStoreSequencePoints フラグを設定する必要があります。

Note

この列挙型は、主に言語開発者によって使用されます。 通常、アプリケーション開発では使用されません。 開発環境では、/debug/optimize などのコンパイラ パラメーターに基づいてDebuggableAttribute.DebuggingModesを使用します。

適用対象