DebuggableAttribute.DebuggingModes DebuggableAttribute.DebuggingModes DebuggableAttribute.DebuggingModes DebuggableAttribute.DebuggingModes Enum

Определение

Задает режим отладки для JIT-компилятора.Specifies the debugging mode for the just-in-time (JIT) compiler.

Это перечисление имеет атрибут FlagsAttribute, который разрешает побитовое сочетание значений его элементов.

public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
type DebuggableAttribute.DebuggingModes = 
Public Enum DebuggableAttribute.DebuggingModes
Наследование
DebuggableAttribute.DebuggingModesDebuggableAttribute.DebuggingModesDebuggableAttribute.DebuggingModesDebuggableAttribute.DebuggingModes
Атрибуты

Поля

Default Default Default Default 1

Требует от JIT-компилятора использования поведения по умолчанию, которое включает активацию оптимизаций, отключение поддержки режима "Изменить и продолжить" и использование точек следования хранилища символов при его наличии.Instructs the just-in-time (JIT) compiler to use its default behavior, which includes enabling optimizations, disabling Edit and Continue support, and using symbol store sequence points if present. Начиная с платформы .NET Framework версии 2.0 всегда генерируются сведения об отслеживании JIT, смещении MSIL для смещения машинного кода внутри метода.Starting with the .NET Framework version 2.0, JIT tracking information, the Microsoft intermediate language (MSIL) offset to the native-code offset within a method, is always generated.

DisableOptimizations DisableOptimizations DisableOptimizations DisableOptimizations 256

Выключение оптимизации кода компилятором делает код более быстрым, коротким и эффективным.Disable optimizations performed by the compiler to make your output file smaller, faster, and more efficient. Оптимизация изменяет порядок строк кода в файле вывода, что может осложнить процесс отладки.Optimizations result in code rearrangement in the output file, which can make debugging difficult. Обычно во время отладки оптимизация должна быть отключена.Typically optimization should be disabled while debugging. Для включения отслеживания JIT и отключения оптимизации в версии 2.0 и более поздних используйте это значение в сочетании со значением по умолчанию (Default | DisableOptimizations).In versions 2.0 or later, combine this value with Default (Default | DisableOptimizations) to enable JIT tracking and disable optimizations.

EnableEditAndContinue EnableEditAndContinue EnableEditAndContinue EnableEditAndContinue 4

Разрешить режим "Изменить и продолжить".Enable edit and continue. "Изменить и продолжить" — это режим, позволяющий вносить изменения в исходный код, в то время как выполнение программы приостановлено.Edit and continue enables you to make changes to your source code while your program is in break mode. Возможности режима "Изменить и продолжить" зависят от компилятора.The ability to edit and continue is compiler dependent.

IgnoreSymbolStoreSequencePoints IgnoreSymbolStoreSequencePoints IgnoreSymbolStoreSequencePoints IgnoreSymbolStoreSequencePoints 2

Используйте неявные точки следования MSIL, а не точки следования базы данных программы (PDB).Use the implicit MSIL sequence points, not the program database (PDB) sequence points. Символьная информация обычно включает по меньшей мере одно смещение в терминах языка MSIL для каждой исходной строки.The symbolic information normally includes at least one Microsoft intermediate language (MSIL) offset for each source line. Перед компиляцией метода JIT-компилятор запрашивает у профилирующей службы список MSIL-смещений, которые необходимо сохранить.When the just-in-time (JIT) compiler is about to compile a method, it asks the profiling services for a list of MSIL offsets that should be preserved. Эти MSIL-смещения называются точками следования.These MSIL offsets are called sequence points.

None None None None 0

Начиная с платформы .NET Framework версии 2.0 всегда генерируются сведения о JIT-отслеживании, и этот флаг дает тот же эффект, что и Default, за исключением того, что для свойства IsJITTrackingEnabled задается значение false.Starting with the .NET Framework version 2.0, JIT tracking information is always generated, and this flag has the same effect as Default, except that it sets the IsJITTrackingEnabled property to false. Однако поскольку JIT-отслеживание всегда включено, значение свойства игнорируется в версии 2.0 или более поздней версии.However, because JIT tracking is always enabled, the property value is ignored in version 2.0 or later.

Обратите внимание, что флаг None, в отличие от флага DisableOptimizations, нельзя использовать для отключения JIT-оптимизаций.Note that, unlike the DisableOptimizations flag, the None flag cannot be used to disable JIT optimizations.

Комментарии

DebuggableAttribute.DebuggingModes Перечисление определяет, как среда выполнения для отслеживания сведений, необходимых для отладчика во время создания кода.The DebuggableAttribute.DebuggingModes enumeration specifies how the runtime is to track information important to the debugger during code generation. Эти сведения помогают предоставляют широкие возможности отладки отладчик.This information helps the debugger provide a rich debugging experience. В отличие от .NET Framework версии 1.1 2.0 или более поздней версии не позволяют отключить отслеживание компилятор just-in-time (JIT).Unlike the .NET Framework version 1.1, versions 2.0 or later do not allow you to turn off tracking by the just-in-time (JIT) compiler. JIT-отслеживание всегда включено для отлаживаемых файлов.JIT tracking is always enabled for debuggable files. В версии 2.0 и более поздних версий значений перечисления имеет следующие последствия.In version 2.0 and later, the enumeration values have the following effect.

Режим отладкиDebugging mode РезультатResult
НетNone Отслеживание на включена оптимизация JITTracking on, JIT optimizations enabled
Значение по умолчаниюDefault Отслеживание на включена оптимизация JITTracking on, JIT optimizations enabled
DisableOptimizationsDisableOptimizations Отслеживание на включена оптимизация JITTracking on, JIT optimizations enabled
Default | DisableOptimizationsDefault | DisableOptimizations Отслеживание на отключена оптимизация JITTracking on, JIT optimizations disabled

Точки следования используются для обозначения мест в коде Microsoft промежуточного языка MSIL, который пользователь отладчика хотят иметь возможность уникальной ссылки, например, установить точку останова.Sequence points are used to indicate locations in the Microsoft intermediate language (MSIL) code that a debugger user will expect to be able to refer to uniquely, such as for setting a breakpoint. JIT-компилятор гарантирует, что в одной инструкции машинного кода не будет компилироваться MSIL в двух точках другой последовательности.The JIT compiler ensures it does not compile the MSIL at two different sequence points into a single native instruction. По умолчанию JIT-компилятор проверяет хранилище символов в файле базы данных (PDB) программы список дополнительных точек следования.By default, the JIT compiler examines the symbol store in the program database (PDB) file for a list of additional sequence points. Тем не менее, загрузка PDB-ФАЙЛ файл требует что файл доступен и имеет отрицательно влияет на производительность.However, loading the PDB file requires that the file be available and has a negative performance impact. Начиная с версии 2.0, возможна выдача «неявные точки последовательности» в потоке кода MSIL с помощью MSIL "nop" инструкции.Starting with version 2.0, compilers can emit "implicit sequence points" in the MSIL code stream through the use of MSIL "nop" instructions. Такие компиляторы следует установить флаг IgnoreSymbolStoreSequencePoints для уведомления среда CLR не загрузить PDB-файл.Such compilers should set the IgnoreSymbolStoreSequencePoints flag to notify the common language runtime to not load the PDB file.

Примечание

Это перечисление используется главным образом разработчиками языка.This enumeration is primarily used by language developers. Он обычно не используется при разработке приложений.It is generally not used in application development. Использование сред разработки IgnoreSymbolStoreSequencePoints основании параметров компилятора, такие как /debug и / optimize.Development environments use IgnoreSymbolStoreSequencePoints based on compiler parameters such as /debug and /optimize.

Применяется к