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
- Наследование
- Атрибуты
Поля
| Имя | Значение | Описание |
|---|---|---|
| None | 0 | Начиная с версии .NET Framework 2.0, данные отслеживания JIT всегда создаются, и этот флаг имеет тот же эффект, что и Default, за исключением того, что свойство IsJITTrackingEnabled имеет значение Обратите внимание, что, в отличие от флага DisableOptimizations , None флаг нельзя использовать для отключения оптимизации JIT. |
| Default | 1 | Указывает JIT-компилятору использовать его поведение по умолчанию, включающее оптимизацию, отключение поддержки правки и продолжения и использование точек последовательности символов при наличии. Начиная с .NET Framework версии 2.0, сведения об отслеживании JIT, смещение Microsoft промежуточного языка (MSIL) в смещение машинного кода в методе всегда создается. |
| IgnoreSymbolStoreSequencePoints | 2 | Используйте неявные точки последовательности MSIL, а не точки последовательности базы данных программы (PDB). Символьная информация обычно включает по крайней мере одно Microsoft смещение промежуточного языка (MSIL) для каждой исходной строки. Когда JIT-компилятор собирается скомпилировать метод, он запрашивает службы профилирования для списка смещения MSIL, которые следует сохранить. Эти смещения MSIL называются точками последовательности. |
| EnableEditAndContinue | 4 | Включите редактирование и продолжить. Изменение и продолжение позволяет вносить изменения в исходный код, пока программа находится в режиме останова. Возможность редактирования и продолжения зависит от компилятора. |
| DisableOptimizations | 256 | Отключите оптимизации, выполняемые компилятором, чтобы сделать выходной файл меньше, быстрее и эффективнее. Оптимизация приводит к переупорядочению кода в выходном файле, что может затруднить отладку. Обычно при отладке следует отключить оптимизацию. В версиях 2.0 или более поздней объедините это значение со значением Default (по умолчанию | DisableOptimizations) для включения отслеживания JIT и отключения оптимизаций. |
Комментарии
Перечисление DebuggableAttribute.DebuggingModes указывает, как среда выполнения отслеживает сведения, важные для отладчика во время создания кода. Эта информация помогает отладчику обеспечить широкий интерфейс отладки. В отличие от .NET Framework версии 1.1, версии 2.0 или более поздней версии не позволяют отключить отслеживание с помощью JIT-компилятора. Отслеживание JIT всегда включено для отладимых файлов. В версии 2.0 и более поздних версиях значения перечисления имеют следующий эффект.
| Режим отладки | Результат |
|---|---|
| Нет | Отслеживание, включенные оптимизации JIT |
| Default | Отслеживание, включенные оптимизации JIT |
| DisableOptimizations | Отслеживание, включенные оптимизации JIT |
| По умолчанию | DisableOptimizations | Отслеживание отключенных оптимизаций JIT |
Точки последовательности используются для указания расположений в коде Microsoft промежуточного языка (MSIL), к которому пользователь отладчика ожидает уникального обращения, например для задания точки останова. Компилятор JIT гарантирует, что он не компилирует MSIL в двух разных точках последовательности в одну собственную инструкцию. По умолчанию JIT-компилятор проверяет хранилище символов в файле базы данных программы (PDB) для списка дополнительных точек последовательности. Однако загрузка PDB-файла требует, чтобы файл был доступен и негативно влияет на производительность. Начиная с версии 2.0 компиляторы могут выдавать "неявные точки последовательности" в потоке кода MSIL с помощью инструкций MSIL.nop" Такие компиляторы должны задать IgnoreSymbolStoreSequencePoints флаг, чтобы уведомить среду CLR не загружать PDB-файл.
Note
Это перечисление в основном используется разработчиками языка. Обычно он не используется в разработке приложений. Среды разработки используются DebuggableAttribute.DebuggingModes на основе параметров компилятора, таких как /debug и /optimize.