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
- Наследование
- Атрибуты
Поля
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 задается значение Обратите внимание, что флаг 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
флаг для уведомления среды CLR о том, что PDB-файл не загружается.
Примечание
Это перечисление в основном используется разработчиками языков. Как правило, он не используется при разработке приложений. Среды разработки используются DebuggableAttribute.DebuggingModes на основе параметров компилятора, таких как /debug и /optimize.