DebuggableAttribute.DebuggingModes Перечисление

Определение

Задает режим отладки для 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

Требует от JIT-компилятора использования поведения по умолчанию, которое включает активацию оптимизаций, отключение поддержки режима "Изменить и продолжить" и использование точек следования хранилища символов при его наличии. Начиная с платформы .NET Framework версии 2.0 всегда генерируются сведения об отслеживании JIT, смещении MSIL для смещения машинного кода внутри метода.

DisableOptimizations 256

Выключение оптимизации кода компилятором делает код более быстрым, коротким и эффективным. Оптимизация изменяет порядок строк кода в файле вывода, что может осложнить процесс отладки. Обычно во время отладки оптимизация должна быть отключена. Для включения отслеживания JIT и отключения оптимизации в версии 2.0 и более поздних используйте это значение в сочетании со значением по умолчанию (Default | DisableOptimizations).

EnableEditAndContinue 4

Разрешить режим "Изменить и продолжить". "Изменить и продолжить" — это режим, позволяющий вносить изменения в исходный код, в то время как выполнение программы приостановлено. Возможности режима "Изменить и продолжить" зависят от компилятора.

IgnoreSymbolStoreSequencePoints 2

Используйте неявные точки следования MSIL, а не точки следования базы данных программы (PDB). Символьная информация обычно включает по меньшей мере одно смещение в терминах языка MSIL для каждой исходной строки. Перед компиляцией метода JIT-компилятор запрашивает у профилирующей службы список MSIL-смещений, которые необходимо сохранить. Эти MSIL-смещения называются точками следования.

None 0

Начиная с платформы .NET Framework версии 2.0 всегда генерируются сведения о JIT-отслеживании, и этот флаг дает тот же эффект, что и Default, за исключением того, что для свойства IsJITTrackingEnabled задается значение false. Однако поскольку JIT-отслеживание всегда включено, значение свойства игнорируется в версии 2.0 или более поздней версии.

Обратите внимание, что флаг None, в отличие от флага DisableOptimizations, нельзя использовать для отключения JIT-оптимизаций.

Комментарии

Перечисление DebuggableAttribute.DebuggingModes указывает, как среда выполнения отслеживает информацию, важную для отладчика во время создания кода. Эти сведения помогают отладчику обеспечить широкие возможности отладки. В отличие от платформа .NET Framework версии 1.1, версии 2.0 или более поздней не позволяют отключить отслеживание с помощью JIT-компилятора. JIT-отслеживание всегда включено для отлаживаемых файлов. В версии 2.0 и более поздних значения перечисления имеют следующий эффект.

Режим отладки Результат
Отсутствуют Отслеживание, включена JIT-оптимизация
Значение по умолчанию Отслеживание, включена JIT-оптимизация
DisableOptimizations Отслеживание, включена JIT-оптимизация
| по умолчанию DisableOptimizations Отслеживание включено, JIT-оптимизации отключены

Точки последовательности используются для указания расположений в коде Майкрософт промежуточного языка (MSIL), на которые пользователь отладчика ожидает однозначно ссылаться, например для установки точки останова. JIT-компилятор гарантирует, что он не компилирует MSIL в двух разных точках последовательности в одну собственную инструкцию. По умолчанию JIT-компилятор проверяет хранилище символов в файле базы данных программы (PDB) на наличие списка дополнительных точек последовательности. Однако для загрузки PDB-файла требуется, чтобы файл был доступен и оказал негативное влияние на производительность. Начиная с версии 2.0 компиляторы могут создавать "неявные точки последовательности" в потоке кода MSIL с помощью инструкций MSIL .nop" Такие компиляторы должны установить IgnoreSymbolStoreSequencePoints флаг , чтобы уведомить общеязыковую среду выполнения о том, что PDB-файл не загружается.

Примечание

Это перечисление в основном используется разработчиками языков. Обычно он не используется при разработке приложений. Среды разработки используются DebuggableAttribute.DebuggingModes на основе параметров компилятора, таких как /debug и /optimize.

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