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
Атрибуты

Поля

Имя Значение Описание
None 0

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

Обратите внимание, что, в отличие от флага 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.

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