次の方法で共有


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
属性

フィールド

Default 1

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

DisableOptimizations 256

コンパイラで実行する最適化を無効にします。最適化は、出力ファイルのサイズを小さくして、速度と効率を向上させるために実行します。 最適化によって出力ファイルのコードの配置が変更されると、デバッグが困難になる可能性があります。 通常、デバッグ中は最適化を無効にします。 バージョン 2.0 以降の場合、この値と Default (Default | DisableOptimizations) を組み合わせ、JIT 追跡を有効にし、最適化を無効にします。

EnableEditAndContinue 4

エディット コンティニュを有効にします。 エディット コンティニュを使用すると、プログラムの中断モード時にソース コードに変更を加えることができます。 エディット コンティニュ機能はコンパイラに依存します。

IgnoreSymbolStoreSequencePoints 2

プログラム データベース (PDB) シーケンス ポイントではなく、暗黙の MSIL シーケンス ポイントを使用します。 通常、シンボリック情報には、ソース行ごとに少なくとも 1 つの MSIL オフセットが含まれています。 ジャスト イン タイム (JIT) コンパイラは、メソッドをコンパイルするとき、保存する必要がある MSIL オフセットのリストをプロファイリング サービスに要求します。 この MSIL オフセットをシーケンス ポイントと呼びます。

None 0

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

DisableOptimizations フラグとは異なり、JIT の最適化を無効にする None フラグを使用することはできません。

注釈

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

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

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

注意

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

適用対象